matlab图像处理基础及入门

本文介绍了使用MATLAB进行图像处理,特别是锐化图像中特定物体的步骤。通过边缘提取、数据拟合和图像分析,实现了对棋子的精确锐化。涉及的函数包括imfilter、rgb2gray、edge、im2bw、imtool、lsqcurvefit等,以及闭运算和霍夫变换的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言:
作为一个大一狗,刚刚接触计算机编程,居然老师不教我们C语言,教matlab,我也是蛮震惊的。不过了,matlab确实比C语言好玩又好学多了,进阶的也快一点,毕竟全是库函数与工具箱嘛,语法也是很人性化的。
才刚刚大一就得到了一些大神学长的指导,为我们班无偿辅导数据拟合与数组图像处理基础,在这里特别要感谢学长,所以我在的第一篇优快云博客就奉献给这个了,数据拟合与数组图像处理基础的综合应用。


下面步入正题:

先给出我要处理的原图:

这里写图片描述


我想做的或者说学长要我做的就是要锐化这些个棋子.对于锐化整个图中较为突出的一个物体(即其边界处与背景有较大变化),我们可以先对其进行边缘提取,其方法有多种,就我目前肤浅所知,大致有两种方法:
1:用拉普拉斯算子(例如[-1 -1 -1;-1 8 -1;-1 -1 -1]),调用imfilter函数对图像进行卷积滤波(具体什么原理并不是很清楚,好像是用导数?)可以提取出其边界。
2先用rgb2gray函数把RGB真彩色图转为灰度图,再调用边界提取函数edge,该函数大概有五种边界提取方式,分别是Sober,Prewitt,Roberts,LOG,Canny.各有优缺点吧(具体也不知道),生成二值图。
接着我们将所提取的边界图乘以某个系数(这个系数是依实际效果而定的,反复尝试找一个较合适的),再与原图像相加,就可以得到物体被锐化的图.
两种方法代码如下:

a=imread('E:/图片存放室/1.JPG');
h=[-1 -1 -1;-1 8 -1;-1 -1 -1];%拉普拉斯算子,对图像进行求导,突出其边缘
a1=imfilter(a,h);
a2=a1/2+a;%系数自行设定
a22=rgb2gray(a);
a3=edge(a22,'Canny');
a3(:,:,2)=a3;%将其转为三维数组
a3(:,:,3)=a3(:,:,2);
a3=uint8(a3);%数字类型转换(logic变为uint8型)
a4=a3*60+a;%系数依效果自行设定
figure(1);
subplot(1,3,1);
imshow(a);
title('原图');
subplot(1,3,2);
imshow(a2);
title('imfilter函数拉普拉斯算子滤波处理图');
subplot(1,3,3);
imshow(a4);
title('edge函数Canny提取');

处理后的图像与原图像的对比如图:

这里写图片描述
可以看到,边界变化较大的物体被突出,但是我们无法选择特

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值