图像形态学操作—腐蚀扩展深度

图像形态学操作—腐蚀扩展深度

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

在这里,我们想向大家解释这本书的数字图像处理对冈萨雷斯的扩大和使用腐蚀-definedopencv取得的成果,然后控制它们之间的差异。

一:opencv达到

       在这之前能够看我的另外一篇blog:http://blog.csdn.net/lu597203933/article/details/17184439

膨胀:

案例代码:

int main(){	int a[8][8] = {		{0,0,0,0,0,0,0,0}, 		{0,0,5,1,0,0,1,1}, 		{0,1,0,1,0,1,0,0},		{0,1,1,2,1,0,1,0},		{0,0,0,1,0,1,0,0},		{0,1,0,0,0,0,0,1},		{0,0,0,0,0,0,0,0},		{0,0,0,0,0,0,0,0}	};	Mat S = Mat::zeros(8, 8, CV_8UC1);	for(int j = 0; j < S.rows; j++)	{		for(int i = 0; i < S.cols; i++)		{			S.at<uchar>(j,i) = a[j][i];		}	}	cout << "S = " << endl << " " << S << endl;	Mat result;	Mat dilated = Mat::zeros(3, 3, CV_8UC1);	dilated.at<uchar>(0,1) = 1;	//eroded.at<uchar>(0,2) = 1;	dilated.at<uchar>(1,0) = 1;	dilated.at<uchar>(1,1) = 2;          // 结构元素非0即1	dilated.at<uchar>(1,2) = 1;	dilated.at<uchar>(2,1) = 1;	cout << "dilated = " << endl << " " << dilated << endl;		dilate(S, result, dilated);  	cout << "result = " << endl << " " << result << endl;	return 0;}

结果:

图像形态学操作—腐蚀扩展深度

膨胀就是假设结构元B有一处非0,而A相应位置非0,则求出A中与B中相应非0处所有像素最大值来取代当前像素点值。Opencv中默认的结构元是3*3的矩阵,所有非0。

腐蚀:

案例代码:

int main(){	int a[8][8] = {		{0,0,0,0,0,0,0,0}, 		{0,0,5,1,0,0,1,1}, 		{0,1,0,1,0,1,0,0},		{0,1,1,2,1,0,1,0},		{0,0,0,1,0,1,0,0},		{0,1,0,0,0,0,0,1},		{0,0,0,0,0,0,0,0},		{0,0,0,0,0,0,0,0}	};	Mat S = Mat::zeros(8, 8, CV_8UC1);	for(int j = 0; j < S.rows; j++)	{		for(int i = 0; i < S.cols; i++)		{			S.at<uchar>(j,i) = a[j][i];		}	}	cout << "S = " << endl << " " << S << endl;	Mat result;	Mat eroded = Mat::zeros(3, 3, CV_8UC1);	eroded.at<uchar>(0,1) = 1;	//eroded.at<uchar>(0,2) = 1;	eroded.at<uchar>(1,0) = 1;	eroded.at<uchar>(1,1) = 2;          // 结构元素非0即1	eroded.at<uchar>(1,2) = 1;	eroded.at<uchar>(2,1) = 1;	cout << "eroded = " << endl << " " << eroded << endl;		erode(S, result, eroded);  	cout << "result = " << endl << " " << result << endl;	return 0;

结果:

图像形态学操作—腐蚀扩展深度

腐蚀就是结构元B处非0,则A相应位置也全非0。且取全非0处最小值来取代当前像素点的值。

 

二:书中定义

膨胀: . 图像形态学操作—腐蚀扩展深度这里的B是结构元。B~是结构元的反射。反射不明确能够看书,就是旋转或者按中心点对称。如:

0 1   的反射就是 1 1

1 1                        1 0

与opencv中唯一的差别就是必须得求反射,而opencv中则直接用给定的结构元B。

腐蚀: 图像形态学操作—腐蚀扩展深度

案例:

图像形态学操作—腐蚀扩展深度

作者:小村长  出处:http://blog.csdn.net/lu597203933 欢迎转载或分享,但请务必声明文章出处。 (新浪微博:http://weibo.com/2653613245/profile , 欢迎交流!

版权声明:本文博主原创文章,博客,未经同意不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116869.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 安卓用的文件系统类型是什么_安卓data区文件系统

    安卓用的文件系统类型是什么_安卓data区文件系统android系统启动过程中有两个很重要的文件,init.c和init.rc,这两个文件具体重要的在哪里,这里不再累赘,网上资料一大把。不过通过这两个文件,我们可以很清楚的看到比如dev等目录属于哪种文件类型,了解之后就可以去使用了。下面关于android文件系统类型进行介绍。   在init初始化过程中,Android分别挂载了tmpfs,devpts,proc,sysfs4类文

    2022年9月17日
    0
  • android变化HOLO对话风格

    android变化HOLO对话风格

    2022年1月9日
    36
  • linux系统重启网卡命令_linux查看网卡配置

    linux系统重启网卡命令_linux查看网卡配置在实际工作中,经常会遇到Linux系统进行重启网卡的操作。接下来是小编为大家收集的linux系统重启网卡方法,希望能帮到大家。linux系统重启网卡方法一、servicenetworkrestart1、首先用CRT工具连接到Linux命令行界面。或者进入操作系统界面,选择终端输入。2、如果我们对所有的网卡进行重启操作。可以尝试输入:servicenetworkrestart命令进行操…

    2022年9月22日
    0
  • datax(10): 源码解读Communication(Datax通讯类)「建议收藏」

    datax(10): 源码解读Communication(Datax通讯类)「建议收藏」前面看了datax的通讯机制,继续看源码—具体的通讯类Communication。根据datax的运行模式的区别,数据的收集会有些区别,这篇文章都是讲的在standalone模式下。一、communication概述DataX所有的统计信息都会保存到Communication类里面。Communication支持下列数据的统计计数器,比如读取的字节速度,写入成功的数据条数/***所有的数值key-value对**/privateMap<String.

    2022年5月17日
    47
  • linux未找到 ftp命令,Linux服务器ftp命令找不到「建议收藏」

    linux未找到 ftp命令,Linux服务器ftp命令找不到「建议收藏」ftpcommondnotfind先用命令rpm-qvsftpd检查是否安装了ftp服务器若显示vsftpd-2.2.2-11.el6_4.1.x86_64这样的信息,说明FTP服务器已安装,那为什么FTP命令不能用呢,那是FTP客户端没安装的缘故。下载ftp-0.17-51.1.el6.x86_64.rpm,下载地址有:http://rpm.pbone.net/index.php3/s…

    2022年9月2日
    2
  • VMM基础_MTM方法

    VMM基础_MTM方法复杂度3/5机密度3/5最后更新2021/04/20VMMVirtualMemoryManagement是所有操作系统都要解决的问题,也是非常硬件相关的问题,必须从硬件CPU的地址管理开始谈起。

    2022年9月22日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号