OpenCV简单图像分割
这里主要基于 OpenCV 和 Scikit-learn 实现四种图像分割:
基于 K-means
基于 Contour Detection
基于 Thresholding
基于 Color Masking HSV颜色空间,就不演示了。
HSV颜色空间阈值调节器在我的opencv工具内
原图:
K-means
import numpy as np
import cv2def cv_show(neme, img):cv2.namedWindow(neme, cv2.WINDOW_NORMAL)cv2.imshow(neme, img)cv2.waitKey(0)cv2.destroyAllWindows()path = 'image2.jpg'
img = cv2.imread(path)img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
twoDimage = img.reshape((-1, 3))
twoDimage = np.float32(twoDimage)criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 10, 1.0)
K = 2
attempts = 10# Kmeans
ret, label, center = cv2.kmeans(twoDimage, K, None, criteria, attempts, cv2.KMEANS_PP_CENTERS)
center = np.uint8(center)
res = center[label.flatten()]
result_image = res.reshape((img.shape))
cv_show('neme', result_image)
效果:
Contour Detection
path = 'image2.jpg'
img = cv2.imread(path)
img = cv2.resize(img, (256, 256))# 图像预处理
gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
_, thresh = cv2.threshold(gray, np.mean(gray), 255, cv2.THRESH_BINARY_INV)
edges = cv2.dilate(cv2.Canny(thresh, 0, 255), None)# 轮廓检测
cnt = sorted(cv2.findContours(edges, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)[-2], key=cv2.contourArea)[-1] # 轮廓检测与排序
mask = np.zeros((256, 256), np.uint8)
masked = cv2.drawContours(mask, [cnt], -1, 255, -1)# 区域分割
dst = cv2.bitwise_and(img, img, mask=mask)
segmented = cv2.cvtColor(dst, cv2.COLOR_BGR2RGB)
cv_show('neme', segmented)
Thresholding
pip install scikit-image
import numpy as np
from skimage.filters import threshold_otsu
import cv2path = 'image2.jpg'
img = cv2.imread(path)img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_RGB2GRAY)def filter_image(image, mask):r = image[:, :, 0] * maskg = image[:, :, 1] * maskb = image[:, :, 2] * maskreturn np.dstack([r, g, b])thresh = threshold_otsu(img_gray) # 找阈值
img_otsu = img_gray < thresh
filtered = filter_image(img, img_otsu)
cv_show('neme', filtered)
效果:
OpenCV简单图像分割相关推荐
- Python 计算机视觉(十二)—— OpenCV 进行图像分割
参考的一些文章以及论文我都会给大家分享出来 -- 链接就贴在原文,论文我上传到资源中去,大家可以免费下载学习,如果当天资源区找不到论文,那就等等,可能正在审核,审核完后就可以下载了.大家一起学习,一起 ...
- OpenCV-Python实战(9)——OpenCV用于图像分割的阈值技术
OpenCV-Python实战(9)--OpenCV用于图像分割的阈值技术 0. 前言 1. 阈值技术简介 2. 简单的阈值技术 2.1 阈值类型 2.2 简单阈值技术的实际应用 3. 自适应阈值算法 ...
- OpenCV简单的过滤器平滑的实例(附完整代码)
OpenCV简单的过滤器平滑的实例 OpenCV简单的过滤器平滑的实例 OpenCV简单的过滤器平滑的实例 #include <iostream> #include "openc ...
- OpenCV简单的几何绘图的实例(附完整代码)
OpenCV简单的几何绘图的实例 OpenCV简单的几何绘图的实例 OpenCV简单的几何绘图的实例 #include <opencv2/core.hpp> #include <op ...
- OpenCV各向异性图像分割anisotropic image segmentation的实例(附完整代码)
OpenCV各向异性图像分割anisotropic image segmentation的实例 OpenCV各向异性图像分割anisotropic image segmentation的实例 Open ...
- 用opencv简单创建单色图片并保存
用opencv简单创建图片 主要调用一些API来简单实现,包含部分数组知识(一个opencv图像是.array类型的二维或多维数组) // # numpy是python的一种开源数值计算扩展 impo ...
- 图像存储方式及使用OpenCV简单处理图像
一.目的 简述图像存储方式及使用OpenCV简单处理图像. 二.图像存储方式 2.1.YUV 2.1.1.简介 YUV是编译true-color颜色空间(color space)的种类,Y'UV, Y ...
- Android之OpenCv简单人脸识别功能(Bitmap)
Android之OpenCv简单人脸识别功能 OpenCv的下载 下载地址 - https://opencv.org/releases/ doc 文档目录 samples 示例代码 sdk 编译后的动 ...
- opencv 彩色图像分割(inrange)
opencv 彩色图像分割(inrange) 原文地址: https://www.cnblogs.com/chenzhefan/p/7648433.html 灰度图像大多通过算子寻找边缘和区域生长融合 ...
最新文章
- 源代码从 300 行到 172,000 行,它用了 23 年
- 45本互联网圣经级别书籍!包邮送到家!一书在手,天下我有!
- SBB:石油污染土壤微生物群落构建与生物多样性研究(一作解读)
- 动态规划走楼梯_动态规划问题为什么要画表格?
- python处理excel文件-使用Python进行Excel文件处理
- hdu4876 深搜+(随机枚举剪枝)
- python -归并排序
- 在网页中插入百度地图(实例)
- mysql中合并函数_MYSQL分组合并函数
- class12_pack_grid_place 放置位置
- Nginx学习总结(3)——Nginx配置及应用场景之高级配置
- 软件架构设计_架构师内功心法,软件架构设计的七大原则精选案例
- maven工具使用json-lib时,JSONArray.fromObject()不能执行的解决方案
- Java测试类的创建
- 三坐标检测之报告查看T值
- [JZOJ6080]【GDOI2019模拟2019.3.23】IOer【生成函数】【数学】
- mysql lpad 列_mysql的lpad函数
- 【火炉炼AI】机器学习050-提取图像的Star特征
- 【有利可图网】PS实战系列:制作树林与文字结合的创意文字效果
- androidBasic
热门文章
- 多分类中accuary与micro F1-score的恒等性
- JAVA 基本数据结构--数组、链表、ArrayList、Linkedlist、hashmap、hashtab等
- python鞋子_Micropython 鞋码匹配仪(标题图与内容无关)
- 淘宝服务商怎么入驻(入驻淘宝需要什么条件)
- Java中关于数组的初始化方式
- Matlab中绘制颜色渐变曲线
- MySQL查询近12个月数据,无则补0
- Multiple keywords with name ‘Capture Page Screenshot‘ found. Give the full name of the keyword you w
- 钛媒体2022 EDGE AWARDS全球创新评选之「年度最佳企业服务品牌」揭榜
- 杭州电子科技大学研究生计算机专业目录,杭州电子科技大学2017年硕士计算机学院招生目录.pdf...