闭运算就是先膨胀,后腐蚀,膨胀或者腐蚀的对象都是针对非零像素,也就是图片当中不是全黑的那部分像素-----或者说灰度值等于0的那些个像素。膨胀导致非零像素膨胀,黑像素就会缩小,
腐蚀导致非零像素减少,黑色像素就会增多。也许有人会搞不清这一点
闭运算是先膨胀,后腐蚀,从本文的图片可以看得出来,所以达到了连通的效果;
开运算是先腐蚀,后膨胀,可能会把原本连通的细小条纹去掉了,所以导致了开的效果。(分开的效果)
void CrelaxMyFriendDlg::OnBnClickedOk()
{
hdc = this->GetDC()->GetSafeHdc();
// TODO: 在此添加控件通知处理程序代码
string imAddr = "c:/Users/actorsun/Pictures/";
string imAddr1 = imAddr+"rice.png";
Mat relax, positive;
relax = imread(imAddr1,IMREAD_GRAYSCALE);
threshold(relax, relax, 100, 255, THRESH_BINARY);
morphologyEx(relax, positive, MORPH_CLOSE, getStructuringElement(MORPH_CROSS, Size(20, 3)));
Mat success;
hconcat(relax, positive, success);
waitKey();
return;
}
实验结果
可以看到:图中的2个本来没有连通的连通域已经连接了,如果这是一个文字,可以把文字连接成一个整体,另外如果这个是文字的一个比划,但是因为某个意外断开了,也是可以连接起来的文章来源:https://www.toymoban.com/news/detail-733017.html
这个操作叫做闭运算文章来源地址https://www.toymoban.com/news/detail-733017.html
到了这里,关于OPENCV 闭运算实验示例代码morphologyEx()函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!