これは、パラメータにそれぞれの値を指定して長方形を描画する関数です。
void rectangle(Mat& img, Point pt1, Point pt2,const Scalar& color, int thickness=1,int lineType=8, int shift=0);
ユーザーはこの関数を使用して、マウスでROIを設定し、テンプレートマッチングアプリケーションで検出された一致に長方形を描画できます。私の質問は、2番目と3番目のパラメータはここでのポイントです。ユーザーがさらに処理するためにポイント1とポイント2の値を取得したい場合、それを取得する方法は?!両方のポイント値を印刷する方法は?!doubleまたはint変換をポイントしますか?!
誰でも、私の疑問をクリアします。助けてくれてありがとう!
更新しました:
void mouseHandler(int event, int x, int y, int flags, void* param)
{
if (event == CV_EVENT_LBUTTONDOWN && !drag)
{
/* left button clicked. ROI selection begins */
point1 = Point(x,y);
drag = 1;
}
if (event == CV_EVENT_MOUSEMOVE && drag)
{
/* mouse dragged. ROI being selected */
Mat img1 = mod_tempimg.clone();
point2 = Point(x, y);
rectangle(img1, point1, point2, CV_RGB(255, 0, 0), 1, 8, 0);
imshow("image", img1);
}
if (event == CV_EVENT_LBUTTONUP && drag)
{
Mat img2=mod_tempimg.clone();
point2 = Point(x, y);
rect = Rect(point1.x,point1.y,x-point1.x,y-point1.y);
drag = 0;
roiImg = mod_tempimg(rect1);
imshow("image", img2);
}
if (event == CV_EVENT_LBUTTONUP)
{
/* ROI selected */
select_flag = 1;
drag = 0;
}
上記のコードで、この行からポイント値を取得する方法は?!
rect = Rect(point1.x,point1.y,x-point1.x,y-point1.y);
長方形の角度を見つけるのに役立つ値がわかっている場合。