我正试图在图像上创建一个矩形ROI,其中某个像素的位置为矩形的中心。我该怎么做呢?
image= imread("C:\image.png",1);
watermark=imread("C:\watermark.png",0);
split(image,yuv_channels);
ROI=yuv_channels[0](Rect(100,100,watermark.cols,watermark.rows));
我应该如何修改它,使位置(100,100)在ROI的中心?
提前感谢您提供的任何帮助。
使用下面的代码创建一个以x,y为中心的MxM矩形。点a,b可以作为OpenCV的矩形函数中矩形的锚点
Point a;
Point b;
//MxM rectangle
a.x = x - M/2;
a.y = y - M/2;
b.x = x + M/2;
b.y = y + M/2;
我之前在c#中做过,在类Image中有一个函数。方法叫做'SetROI()',希望对大家有所帮助
我不确定我是否理解,但如果你只是想使点(矩形。x,矩形。y)在矩形的中间,只需使用这个代码:
Rect rect = Rect(100, 100, 234, 456);
rect -= Point(rect.width/2, rect.height/2)
或者如果你想在一行中完成:
Rect rect = Rect(100 - watermatk.cols/2, 100 - watermark.rows/2, watermark.cols, watermark.rows);