来自:zrx网 > 馆藏分类
配色: 字号:
OpenCV细胞分割,漫水填充法
2018-05-30 | 阅:  转:  |  分享 
  
#include"opencv2/opencv.hpp"#includeusingnamespacestd;usi
ngnamespacecv;voidfillHole(constMatsrcBw,Mat&dstBw){Sizem
_Size=srcBw.size();MatTemp=Mat::zeros(m_Size.height+2,m_S
ize.width+2,srcBw.type());//延展图像srcBw.copyTo(Temp(Range(1,m_S
ize.height+1),Range(1,m_Size.width+1)));cv::floodFill(Temp,
Point(0,0),Scalar(255));MatcutImg;//裁剪延展的图像Temp(Range(1,m_Si
ze.height+1),Range(1,m_Size.width+1)).copyTo(cutImg);dstBw
=srcBw|(~cutImg);}intmain(){Matimg=cv::imread("F://1.jpg")
;Matgray;cvtColor(img,gray,CV_RGB2GRAY);Matbw,sw,dsa;threshol
d(gray,bw,0,255,CV_THRESH_BINARY|CV_THRESH_OTSU);Matelemen
t=getStructuringElement(MORPH_ELLIPSE,Size(3,3));MatbwFill;f
illHole(bw,bwFill);sw=bwFill.clone();for(inti=0;i<2;i+
+){erode(sw,sw,element);}for(inti=0;i<3;i++){dilate(sw,
sw,element);}imshow("膨胀",sw);bitwise_and(sw,bwFill,dsa);//膨胀与填
充后原图进行与运算imshow("原图",img);imshow("灰度",gray);imshow("填充前",bw);//
二值分割图imshow("填充后",bwFill);imshow("与后图像",dsa);waitKey();return0;}
献花(0)
+1
(本文系zrx网原创)