opencv中roi嵌套

来源:互联网 发布:windows10的编程软件 编辑:程序博客网 时间:2024/05/21 09:08

问题:在opencv中,取一幅图像src的子区间roi,在该roi里面分析,得到子区间roi的子区间roi2。如何把子区间里面的roi2的坐标还原到src。

解决:函数在下面给出,相关主函数自行添加

void RoiTest(){char  filename[100];int count=1;Mat src;Mat subsrc;Rect grinder_test_roi;Rect sub_test_roi;Rect dst_test_roi;sprintf(filename,"D:/frame3/%04d.jpg",count);src=imread(filename);if(!src.data){return;}grinder_test_roi.y=cvRound(src.rows/2.5);//行起始点坐标grinder_test_roi.x=0;//列起始点坐标grinder_test_roi.height=src.rows-grinder_test_roi.y;grinder_test_roi.width=cvRound(src.cols/2);rectangle(src, grinder_test_roi.tl(), grinder_test_roi.br(), Scalar(0,255,0), 3);//imshow("grinderRoi",src);subsrc=src(grinder_test_roi);sub_test_roi.y=cvRound(subsrc.rows/2.5);sub_test_roi.x=0;sub_test_roi.height=subsrc.rows-sub_test_roi.y;sub_test_roi.width=cvRound(subsrc.cols/2);rectangle(subsrc, sub_test_roi.tl(), sub_test_roi.br(), Scalar(0,0,255), 3);imshow("subRoi",subsrc);dst_test_roi.y=sub_test_roi.y+grinder_test_roi.y;//坐标还原过程dst_test_roi.x=sub_test_roi.x+grinder_test_roi.x;dst_test_roi.height=sub_test_roi.height;dst_test_roi.width=sub_test_roi.width;rectangle(src, dst_test_roi.tl(), dst_test_roi.br(), Scalar(255,0,0), 3);imshow("grinderRoi",src);waitKey();}


0 0
原创粉丝点击