Advertisement

基于OpenCV的简单套索工具开发

阅读量:

Photoshop中的套索工具利用鼠标单击可以选择一个任意多边形区域,并对该区域进行单独处理。下面是使用OpenCV实现的一个简单的功能——模拟Photoshop中的套索工具。这里的套索工具通过左键在图片上单击创建任意数量的点;右键单击后将这些点连接成一个封闭的多边形来形成待编辑区域。键盘上的方向键用于控制该区域的位置变化。首先定义下列全局变量。

复制代码
 const char* winName = "TaoSuoTool";//窗口名称

    
 cv::Mat resultImg;//最终在OpenCV窗口上显示的图像
    
 cv::Mat foregroundImg;//编辑前的图像
    
 cv::Mat areaMask;//蒙版,多边形区域实际绘制在该蒙版上
    
 cv::Point maskLocation;//蒙版位置,通过方向键移动后蒙版位置随之变化
    
 std::vector<cv::Point> drawingPoints;//区域完成前正在点击的所有点
    
 std::vector<cv::Point> areaPoints;//区域完成后其多边形顶点

main函数

复制代码
 int main(int argc, char **arv)

    
 {
    
     foregroundImg = c

全部评论 (0)

还没有任何评论哟~