提取不规则感兴趣区域

void anomalyRoi(Mat &src, Mat &dst)
{Mat original = src.clone();//高斯滤波GaussianBlur(original, original, Size(3, 3), 11, 11, 4);//灰度化cvtColor(original, original, COLOR_RGB2GRAY);//二值化Mat threshold_image;threshold(original, threshold_image, 90, 225, 3);//形态学操作,Size的第个值是水平方向,第二值是垂直方向Mat morphologyKernel = getStructuringElement(MORPH_RECT, Size(1, 3));//闭运算morphologyEx(threshold_image, threshold_image, CV_MOP_CLOSE, morphologyKernel);Canny(threshold_image, threshold_image, 45, 45 * 3);imshow("Canny", threshold_image);vector<vector<Point>> contours;vector<Vec4i> hireachy;//找轮廓findContours(threshold_image, contours, hireachy, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE, Point(-1, -1));int flag_count = 0;///vector< vector<Point>> contours_poly(contours.size());//建一个全黑的图像Mat show_threImage = Mat::zeros(threshold_image.size(), CV_8UC3);double s_area = 0;for (size_t i = 0; i < contours.size(); i++){//在全黑的图像上画轮廓drawContours(show_threImage, contours, static_cast<int>(i), Scalar(255, 255, 255), 2, 8, hireachy, 0, Point()); //利用面积进行判断是否为最大区域double area = contourArea(contours[i]);if (s_area < area){s_area = area;}else{s_area = s_area;}if (area == s_area){flag_count = static_cast<int>(i);}else{flag_count = flag_count;}}imshow("Draw_Image_Contours", show_threImage);Mat gray(src.size(), src.type(), Scalar(0, 0, 0));drawContours(gray, contours, flag_count, Scalar(255, 255, 255), 4, 8, hireachy, 0, Point());namedWindow("gray", 0);imshow("gray", gray);//为了找内部的一个漫水填充的种子点Rect s = boundingRect(contours[flag_count]);//黑色区域变成白色,遇到白色区域停止floodFill(gray, Point(s.x + s.width / 2, s.y + s.height / 2), Scalar(255,255,255));bitwise_and(src, gray, dst);
}

OpenCV不规则ROI提取相关推荐

  1. mat opencv 修改roi_OpenCV中如何提取不规则ROI区域

    点击上方"计算机视觉life",选择"星标" 快速获得最新干货 什么是ROI ROI是英文Region Of Interest的三个首字母缩写,很多时候我们对图 ...

  2. 实战解惑 | OpenCV中如何提取不规则ROI区域

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 什么是ROI ROI是英文Region Of Interest的三 ...

  3. OpenCV 提取不规则ROI区域

    目录 什么是ROI 提取ROI区域 方法一: 方法二: 实际应用演示 原文出处: https://mp.weixin.qq.com/s/MiHz2zLBif_s1lksQXLBbw 微信公众号:Ope ...

  4. 【opencv-python不规则多边形 ROI提取】

    opencv-python不规则多边形 ROI提取 import cv2import numpy as np import joblibpts = [] # 用于存放点# 统一的:mouse call ...

  5. opencv使用cvFindContours提取联通域

    转自:http://hi.baidu.com/irmosgarden/blog/item/8ce0174c54b307fad72afcbc.html // m_imgFeature为黑白目标图像,白色 ...

  6. 基于OpenCV的特定区域提取

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 今天我们将一起探究如何使用OpenCV和Python从图像中提取感 ...

  7. opencv 手选roi区域_【OpenCV】选择ROI区域

    问题描述:在测试目标跟踪算法时,需要选择不同区域作为目标,进行目标跟踪,测试目标跟踪的效果. 解决思路: 1.OpenCV中提供了鼠标交互控制,利用setMouseCallback()给固定的窗口设置 ...

  8. 《OpenCv视觉之眼》Python图像处理十二 :Opencv图像轮廓提取之基于一阶导数的Roberts算法、Prewitt算法及Sobel算法

    本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...

  9. 《OpenCv视觉之眼》Python图像处理十四 :Opencv图像轮廓提取之Scharr算法和Canny算法

    本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...

最新文章

  1. 在vscode中使用pylint-django插件解决pylint的一些不必要的错误提示【转】
  2. Web应用里的HTTP参数污染(HPP漏洞)
  3. python大于等于怎么表示_如何在rejectdb中应用python lambda表达式中的大于等于
  4. formal method lecture 2: propositional logic
  5. matlab光盘映像文件可以删除吗_DVD-Cloner 2020 for mac(DVD光盘刻录工具) 7.00.715
  6. CF 1475 D. Cleaning the Phone 思维模型
  7. [渝粤教育] 西南科技大学 电子设计EDA 在线考试复习资料
  8. 2.MongoDB基本操作
  9. python r语言 作图_生物医学绘图,Python 并不比R语言差
  10. CentOS系统使用yum安装配置MariaDB数据库
  11. Linux上使用Cron启动定时任务
  12. linux rz sz putty,PuTTY xshell rz sz命令实现上传下载到windows的方法
  13. Java 多态性理解
  14. cass坡度土方计算案例_cass7.0土方计算详解
  15. 苹果拼图软件测试,装机必备软件评测:DSM记事本iPhone版
  16. 双系统时间不一致解决方案
  17. 用计算机刻录光盘,刻录光盘,教您如何使用计算机将文件刻录到光盘上.
  18. android 颜色透明度16进制换算
  19. yocto编译linux,好实用!用 Yocto 在 Ubuntu 上创建最小化 Linux 发行版
  20. MySQL-基础练习题1

热门文章

  1. 7.测试hadoop安装成功与否,并跑mapreduce实例
  2. 高级(复杂)指针的含义
  3. 运用神经网络方法找寻集成学习中的最优权重
  4. 你真的了解Scrum吗?
  5. Tomcat 部署项目的三种方法
  6. 锁优化:逃逸分析、自旋锁、锁消除、锁粗化、轻量级锁和偏向锁
  7. MySql系统变量explicit_defaults_for_timestamp
  8. 多线程之线程池的应用
  9. 解析IntelliJ IDEA内部设计
  10. Java并发编程(7):使用synchronized获取互斥锁的几点说明