本算法是為了實現攝像頭模組定點對焦功能,當然也可以進行手動選擇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中