QT-鼠标点击获取ROI-用于摄像头模组定点对焦

本算法是为了实现摄像头模组定点对焦功能,当然也可以进行手动选择ROI获取相关数据。算法逻辑:鼠标在QT 的控件上点击,获取该点坐标(x,y),然后设置ROI区域长宽width,heigh,然后获取ROI区域左上角点((x-width/2),(y+height/2)),即鼠标点击的点为ROI区域的中心

步骤:

1.获取QT控件的鼠标点击坐标,我需要在Qlabel上获取鼠标点击坐标,需要重写QLabel,加上鼠标事件,然后把相应的Qlabel控件提升为重写的QLabel,

2.获取ROI左上角,并判短是否会有边缘越界问题。

 1     int xx, yy;//左上角坐标
 2     int w, h;//控件的宽,高
 3     int ww,hh;//ROI区域宽、高
 4     xx = x - ww/2;//x为鼠标点击的横坐标
 5     yy = y + hh/2;//y为鼠标点击的纵坐标
 6     if (xx > (w-ww))//判断边缘
 7     {
 8         xx = (w-ww);//留有刚好够ROI区域的xx坐标
 9 
10     }
11     if (yy > h)//判断边缘
12     {
13         yy = h;
14     }
15     if (xx < 0)//判断边缘
16     {
17         xx = 0;//判断边缘
18     }
19     if (yy < ww)
20     {
21         yy = ww;//留有刚好够ROI区域的yy坐标
22     }
23     img(Rect(width, height, 150, 150)).copyTo(imgROI);//将img中ROI区域的数据传到imgROI中
原文地址:https://www.cnblogs.com/zxl971213/p/13644340.html