电商网站建设讯息,学编程的好处,wordpress的tag404页面,成都全网营销型网站操作系统#xff1a;ubuntu22.04 OpenCV版本#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言#xff1a;C11
算法描述
允许用户在给定的图像上选择一个感兴趣区域#xff08;ROI#xff09;。
该功能创建一个窗口#xff0c;并允许用户使用鼠标来选择一个 ROI。… 操作系统ubuntu22.04 OpenCV版本OpenCV4.9 IDE:Visual Studio Code 编程语言C11
算法描述
允许用户在给定的图像上选择一个感兴趣区域ROI。
该功能创建一个窗口并允许用户使用鼠标来选择一个 ROI。控制方式使用空格键或回车键完成选择使用 ‘c’ 键取消选择此时函数将返回一个零值的 cv::Rect
cv::selectROI 是 OpenCV 中用于让用户交互式地选择图像中的一个矩形区域的函数。该函数允许用户通过鼠标在图像上绘制一个矩形框来选择一个区域。选择完成后函数会返回所选区域的位置和大小。
注意 该函数使用 cv::setMouseCallback(windowName, …) 为指定的窗口设置自己的鼠标回调。工作完成后将为使用的窗口设置一个空的回调。
函数原型 Rect cv::selectROI
(const String windowName,InputArray img,bool showCrosshair true,bool fromCenter false,bool printNotice true
) 参数
参数windowName 显示选择过程的窗口的名称。参数wimg 用于选择 ROI 的图像。参数wshowCrosshair 如果为真则将显示选择矩形的十字光标。参数wfromCenter 如果为真则选择的中心将匹配初始鼠标位置。相反的情况下选择矩形的一个角将对应于初始鼠标位置。参数wprintNotice 如果为真则将在控制台中打印选择 ROI 或取消选择的通知。
返回值
返回一个 cv::Rect 对象包含了所选区域的位置和大小信息x, y, width, height。如果取消返回空。
代码示例 #include iostream
#include opencv2/opencv.hppint main()
{// 加载图像cv::Mat img cv::imread( /media/dingxin/data/study/OpenCV/sources/images/hawk.jpg, cv::IMREAD_COLOR );if ( img.empty() ){std::cerr Error: Image not found! std::endl;return -1;}// 创建窗口std::string winname Select ROI;cv::namedWindow( winname, cv::WINDOW_NORMAL );// 显示图像cv::imshow( winname, img );// 选择 ROIcv::Rect roi cv::selectROI( winname, img, false, false );// 打印所选区域的信息std::cout Selected ROI: roi std::endl;// 在原图上画出所选区域的边界框cv::rectangle( img, roi, cv::Scalar( 0, 255, 0 ), 2 );// 显示带有边界框的图像cv::imshow( winname, img );cv::waitKey( 0 );// 关闭所有窗口cv::destroyAllWindows();return 0;
}运行结果
我们可以鼠标左键选中一个点摁住不放就可以选自己想选的矩形框选好了松开左键就可以了。