1. 程式人生 > >rectangle函式的使用

rectangle函式的使用



在第一次使用cvRectangle繪製矩形的時候遇到一個問題:Error:不存在從“cv::Mat”到"CvArr*"的適當轉換函式,就特意查了查資料,總結如下。

cvRentangle和cv::rectangle函式原型對比:

C:       void cvRectangle(CvArr* img, CvPoint pt1, CvPointpt2, CvScalar color, int thickness=1, int line_type=8, int shift=0 )

C++:void rectangle(Mat& img, Point pt1,Point pt2
,const Scalar& color, int thickness=1, int lineType=8, int shift=0)
C++:void rectangle(Mat& img, Rect rec, const Scalar& color, int thickness=1, int lineType=8, int shift=0 )

引數介紹:

img 影象. pt1 矩形的一個頂點。 pt2 矩形對角線上的另一個頂點 color 線條顏色 (RGB) 或亮度(灰度影象 )(grayscale image)。 thickness 組成矩形的線條的粗細程度。取負值時(如 CV_FILLED)函式繪製填充了色彩的矩形。 line_type 線條的型別。見cvLine的描述 shift 座標點的小數點位數。 程式碼:
[cpp] view plaincopyprint?
  1. #include <iostream>
  2. #include <opencv2\highgui\highgui.hpp>
  3. usingnamespace std;  
  4. usingnamespace cv;  
  5. int main()  
  6. {  
  7.     char *imageSrc = "I:\\OpenCV Learning\\picture\\sumpalace.jpg";  
  8.     Mat matImage = imread(imageSrc,-1);  
  9.         IplImage *iplImage = cvLoadImage(imageSrc,-1);  
  10.     if(matImage.data==0||iplImage->imageData ==0)  
  11.     {  
  12.         cout<<"圖片載入失敗"<<endl;  
  13.         return -1;  
  14.     }     
  15.     cv::rectangle(matImage,cvPoint(20,200),cvPoint(200,300),Scalar(255,0,0),1,1,0);  
  16.     //Rect(int a,int b,int c,int d)a,b為矩形的左上角座標,c,d為矩形的長和寬
  17.     cv::rectangle(matImage,Rect(100,300,20,200),Scalar(0,0,255),1,1,0);  
  18.     cvRectangle(iplImage,cvPoint(20,200),cvPoint(200,300),Scalar(0,255,255),1,1,0);  
  19.     imshow("matImage",matImage);  
  20.     cvShowImage("IplImage",iplImage);  
  21.     waitKey();  
  22.     return 0;  
  23. }  
#include <iostream>
#include <opencv2\highgui\highgui.hpp>

using namespace std;
using namespace cv;
int main()
{
	char *imageSrc = "I:\\OpenCV Learning\\picture\\sumpalace.jpg";
	Mat matImage = imread(imageSrc,-1);
        IplImage *iplImage = cvLoadImage(imageSrc,-1);
	
	if(matImage.data==0||iplImage->imageData ==0)
	{
		cout<<"圖片載入失敗"<<endl;
		return -1;
	}	
	
	cv::rectangle(matImage,cvPoint(20,200),cvPoint(200,300),Scalar(255,0,0),1,1,0);
	//Rect(int a,int b,int c,int d)a,b為矩形的左上角座標,c,d為矩形的長和寬
	cv::rectangle(matImage,Rect(100,300,20,200),Scalar(0,0,255),1,1,0);
	cvRectangle(iplImage,cvPoint(20,200),cvPoint(200,300),Scalar(0,255,255),1,1,0);
	
	imshow("matImage",matImage);
	cvShowImage("IplImage",iplImage);
	waitKey();
	return 0;
}
結果:



如果需要在Mat型別的圖上繪製矩形,選擇cv::trctangle()

在IplImage*型別的圖上繪製矩形,選擇cvRectangle()

相關推薦

影象處理中矩形標記影象中某一塊區域matlab中rectangle函式介紹

rectangle('Position',[x,y,w,h]) 從點(x,y)開始繪製一個寬w高h的矩形,對座標軸資料單元指定值。 注意,按指定的比例顯示矩形,需要設定座標軸資料寬高比來使得x和y軸有等長的單位。你可以用命令axis equal 或者daspect([1,

rectangle函式的使用

 在第一次使用cvRectangle繪製矩形的時候遇到一個問題:Error:不存在從“cv::Mat”到"CvArr*"的適當轉換函式,就特意查了查資料,總結如下。 cvRentangle和cv::rectangle函式原型對比: C:       void cvRe

Matlab中的line()函式rectangle()函式

Line()函式用法例:畫一條從(x1,y1)到(x2,y2)的線段;線形:實線;顏色:紅色;線寬:4line([x1,x2],[y1,y2],'LineStyle','-','color','r','LineWidth',4);注意:函式引數中第一個中括號中是兩個橫座標,第

Matlab中rectangle函式

rectangle函式功能:建立二維矩形物件。   rectangle('Position',[x,y,w,h]) 從點(x,y)開始繪製一個寬w高h的矩形,對座標軸資料單元指定值。 注意,按指定的比例顯示矩形,需要設定座標軸資料寬高比來使得x和y軸有等長的單位。你可以用

Opencv 中圖形繪製函式 rectangle函式的使用

函式 rectangle: Opencv 原始碼: /** @brief Draws a simple, thick, or filled up-right rectangle. The function rectangle draws a rectangle out

Opencv3中Rect和rectangle函式

一、Rect類template<typename _Tp> class Rect_ { public: typedef _Tp value_type; //! various constructors Rect_(); Rect_

cv::rectangle()函式簡要介紹

void rectangle(Mat& img, Point pt1,Point pt2,const Scalar& color, int thickness=1, int lineType=8, int shift=0) 引數介紹:

rectangle函式matlab

%rectangle函式功能:建立矩形、圓角矩形和橢圓。 用法:rectangle('Position', [x y w h]);在點(x,y)處建立寬和高為(w,h)的矩形           rectangle('Curvature', [0 0], ...);矩形曲

習題 12.4 寫一個程式,定義抽象基類Shape,由它派生出3個派生類:Circle(圓形)、Rectangle(矩形)、Triangle(三角形),用一個函式printArea分別輸出以上。。。

C++程式設計(第三版) 譚浩強 習題12.4 個人設計 習題 12.4 寫一個程式,定義抽象基類Shape,由它派生出3個派生類:Circle(圓形)、Rectangle(矩形)、Triangle(三

習題 12.5 寫一個程式,定義抽象基類Shape,由它派生出5個派生類:Circle、Square、Rectangle、Tarpezoid、Triangle。用虛擬函式分別計算幾種圖形面積,並求。。。

C++程式設計(第三版) 譚浩強 習題12.5 個人設計 習題 12.5 寫一個程式,定義抽象基類Shape,由它派生出5個派生類:Circle、Square、Rectangle、Tarpezoid、Triangle。用虛擬函式分別計算幾種圖形面積,並求它們的和

python-opencv繪圖函式(cv2.line(), cv2.circle(), cv2.rectangle(),cv2.ellipse() cv2. cv2.putText() )

主要有cv2.line()//畫線, cv2.circle()//畫圓, cv2.rectangle()//長方形,cv2.ellipse()//橢圓, cv2.putText()//文字繪製 主要引數 img:源影象 color:需要傳入的顏色 thickness:線條的粗細,預設值是1

編寫一個矩形rectangle類,有資料成員長len和寬wid,建構函式retange(int,int).和友元函式 int area(rectangle T)和int fun(rectangle T

#include <iostream> using namespace std; class rectangle { public: rectangle(int ,int ); friend int area(rectangle T); friend

編寫一個類Rectangle,有長itsLength,寬itsWidth等資料成員,有過載的建構函式Rectangle()、Rectangle(int width,int length)。

#include<iostream>using namespace std; class Rectangle{public:   Rectangle() {itsLength=10,itsWidth=5;}   Rectangle(int length ,int

FillRect、FrameRect與Rectangle矩形繪製函式使用對比分析

  在Windows中,在GDI函式中傳入的引數指定的矩形大小,起始的座標會繪畫,而結束的座標則不會畫到, 也就是至於結束座標的前面一個畫素。所以,從圖上可以看到,我們繪製一個寬80高50的矩形,實際上,我們 繪製的結束xy座標為(79,49),而不是(80,50),而這樣剛好達到了80x50個畫素的大小。

poj 2559 Largest Rectangle in a Histogram 棧

hist func opc txt class sse typedef ++ limit // poj 2559 Largest Rectangle in a Histogram 棧 // // n個矩形排在一塊,不同的高度,讓你求最大的矩形的面積(矩形緊挨在一起)

Tutorial: Generate BBox or Rectangle to locate the target obejct

mil 格式 trac documents rgb ims nts itl tro Tutorial: Generate BBox or Rectangle to locate the target obejct    1 clc;close all;clear

LeetCode 223 Rectangle Area(矩形面積)

lee return common 分享 span spa class tracking mod 翻譯 找到在二維平面中兩個相交矩形的總面積。 每一個矩形都定義了其左下角和右上角的坐標。 (矩形例如以下圖) 如果,總占地面積永遠不會超過int

maximal-rectangle——找出最大矩形的面積

color filled largest 復雜度 組成 繼續 思路 find || Given a 2D binary matrix filled with 0‘s and 1‘s, find the largest rectangle containing all one

【LeetCode】84. Largest Rectangle in Histogram——直方圖最大面積

the area 求解 技術分享 ges sent -s com col alt Given n non-negative integers representing the histogram‘s bar height where the width of each ba

輕量級分組密碼RECTANGLE

blank 組密碼 doc tar tps forms rectangle lock print RECTANGLE是一個輕量級分組密碼算法,由張文濤老師等人設計,詳細內容請參考[1]. [1] RECTANGLE: A Bit-slice Lightweight Bl