Python OpenCV学习笔记之:分水岭算法分割图像
生活随笔
收集整理的這篇文章主要介紹了
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学习笔记之:分水岭算法分割图像的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么 Linux的开发者要转到Wind
- 下一篇: 随机洗牌:哪一种算法是正确的?