Python OpenCV学习笔记之:分水岭算法分割图像
为什么80%的码农都做不了架构师?>>>
# -*- coding: utf-8 -*- """ 图像分水岭分割图像 分水岭算法可以参考:http://baike.baidu.com/item/%E5%88%86%E6%B0%B4%E5%B2%AD%E7%AE%97%E6%B3%95 """import numpy as np import cv2 from matplotlib import pyplot as pltimg = cv2.imread('../../../datas/images/apple.jpg') gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) ret, thresh = cv2.threshold(gray,0,255,cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU)# 降噪处理 kernel = np.ones((3,3),np.uint8) opening = cv2.morphologyEx(thresh,cv2.MORPH_OPEN,kernel, iterations = 2)# 确定背景 sure_bg = cv2.dilate(opening,kernel,iterations=3)# 查找前景 dist_transform = cv2.distanceTransform(opening,cv2.DIST_L2,5) ret, sure_fg = cv2.threshold(dist_transform,0.7*dist_transform.max(),255,0)# 查找未确定区域 sure_fg = np.uint8(sure_fg) unknown = cv2.subtract(sure_bg,sure_fg)# 标注 ret, markers = cv2.connectedComponents(sure_fg) markers = markers+1# 将未确定区域置为0 markers[unknown==255] = 0# 执行分水岭 markers = cv2.watershed(img,markers) img[markers == -1] = [255,0,0]cv2.imshow("img",img)cv2.waitKey() cv2.destroyAllWindows()
转载于:https://my.oschina.net/wujux/blog/801938
Python OpenCV学习笔记之:分水岭算法分割图像相关推荐
- python做直方图-python OpenCV学习笔记实现二维直方图
本文介绍了python OpenCV学习笔记实现二维直方图,分享给大家,具体如下: 官方文档 – https://docs.opencv.org/3.4.0/dd/d0d/tutorial_py_2d ...
- python opencv 直方图均衡_详解python OpenCV学习笔记之直方图均衡化
本文介绍了python OpenCV学习笔记之直方图均衡化,分享给大家,具体如下: 官方文档 – https://docs.opencv.org/3.4.0/d5/daf/tutorial_py_hi ...
- OpenCV学习笔记(十六)——CamShift研究 OpenCV学习笔记(十七)——运动分析和物体跟踪Video OpenCV学习笔记(十八)——图像的各种变换(cvtColor*+)imgproc
OpenCV学习笔记(十六)--CamShift研究 CamShitf算法,即Continuously Apative Mean-Shift算法,基本思想就是对视频图像的多帧进行MeanShift运算 ...
- OpenCV学习笔记(十七):图像修补:inpaint()
OpenCV学习笔记(十七):图像修补:inpaint() inpaint()函数 使用区域邻域在图像中还原选定区域. void inpaint( InputArray src, // 表示要修复的图 ...
- OpenCV学习笔记(十):图像金字塔Pyramid和图像缩放:pyrDown(),pyrUp(),resize()
OpenCV学习笔记(十):图像金字塔Pyramid和图像缩放:pyrDown(),pyrUp(),resize() 一.图像金字塔定义: 图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是 ...
- OpenCV学习笔记(三):图像对比度、亮度调整源码
OpenCV学习笔记(三):图像对比度.亮度调整源码 主函数: #include <opencv2/opencv.hpp>using namespace cv;using namespac ...
- opencv学习笔记10:阈值分割
阈值分割 像素图 原始图像像素图 见下面 红色线:标注一条阈值线 二进制阈值化 首先设定一条阀值线 如127 大于127的像素点灰度值设为最大(如unit8的格式为255) 小于127的像素点灰度值设 ...
- 分水岭算法分割图像的原理概述及OpenCV代码实现
图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 前面博文中提到的图像阈值化,图像边缘检测,图像轮 ...
- Opencv学习笔记(二) 提取图像中的水平线和垂直线
提取图像中的水平线和垂直线属于基础的形态学操作的应用,原理:根据要提取图形来定义一个特定的结构元素,然后以这个结构相素去遍历图像,进行一系列形态学操作,以此过滤掉其他特征的图形,达到提取的效果. 示例 ...
最新文章
- asp.net中jQuery $post用法
- SQLServer2008创建新用户 转
- mysql---表所在数据库
- JESD204B的AXI4-Lite时序分析(对比SRIO的AXI4-Lite时序分析)
- 如何在使用Retry之后,Jenkins能够准确发送邮件的脚本
- python做excel表格柱状图_Python Excel 绘制柱形图
- Mybatis源码阅读(四):核心接口4.2——Executor(上)
- python表示空类型的关键字_Python 为什么没有 void 关键字?
- 基于java的订餐系统设计(含源文件)
- urllib2库的基本使用
- 使用FormData,进行Ajax请求并上传文件
- php对pdf关键字定位,如何在PDF文件中快速查找关键字
- java list初始容量_java中快速创建带初始值的List和Map实例
- java几种常见加密算法小试
- QT5入门学习(一)
- 【开发环境】运行Hitool出现“A Java Runtime Environment (JRE) or Java Development Kit (JDK)”错误处理
- PreferenceScreen使用
- Ipsec phase1 and phase2
- 淘宝订单API接口参数详解
- python去掉左边的空格_Python去除字符串左边空格