تبدیل 2 نقطه به مستطیل - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

تبدیل 2 نقطه به مستطیل

0 امتیاز

سلام.

2 نقطه داریم که یکی از آنها مربوط به top-left و دیگری مربوط به right-bottom هست از نوع Point.

من قصد دارم این 2 نقطه را به یک rectangle تبدیل کنم به صورت زیر عمل کردم ولی rectangle خالیه.

cv::Rect rRect;
rRect.tl() = pTopLeft;
rRect.br() = pBottomRight;

آیا راهی برای اینکار وجود داره؟

سوال شده فروردین 8, 1393  بوسیله ی ابید (امتیاز 781)   19 90 106

1 پاسخ

+1 امتیاز
 
بهترین پاسخ

به خاطر اینه که tl,br  احتمالا کپی بر می گردونن

می تونی یا با سازنده Rect رو بسازی

   Point pTopLeft(100,100);
   Point pBottomRight(200,300);
   Rect rect(pTopLeft,pBottomRight);

یا x ,y,width,height رو برا اساس 2 تا point بهش بدی

#include <iostream>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

using namespace cv;
int main( )
{
   Point pTopLeft(100,100);
   Point pBottomRight(200,300);
   Rect rect;
   Mat image(500, 500, CV_8UC3, Scalar(0));  

   rect.x=pTopLeft.x;
   rect.y=pTopLeft.y;
   rect.width=pBottomRight.x-pTopLeft.x;
   rect.height=pBottomRight.y-pTopLeft.y;

   rectangle(image,rect,Scalar(255,255,255));

   imshow("TEST",image);
   waitKey(0);
}

 

 

پاسخ داده شده فروردین 9, 1393 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
انتخاب شد فروردین 23, 1393 بوسیله ی ابید
...