数字图像处理完整MATLAB代码在我的资源可以看到,为方便下载,下面是百度网盘资源:

链接:https://pan.baidu.com/s/17S7PZJwwvb3PFMFVxqEY5w  提取码:HUAT

       在对图像进行局部处理的时候通常会用到掩膜,掩膜与图像进行与运算后生成的二值图

像显示了你感兴趣的图像部分,同时也可以减少数据的处理量。以下以[300 300]的图像进行掩膜处理的过程,进行图像与掩膜尺寸的统一([300 300]大小),不仅可以突出你感兴趣的图像部分,事实上,这样还有利于你处理掩膜部分后你感兴趣的图像部分得到的数据,通过用plot将这些数据(线、点、圈等数据线元素)显示在完整的原图上,而不仅仅是显示在掩膜后的部分图像上。废话少说,上代码,你自行体验。

%主函数

I1=imread("C:\Users\A\Desktop\picture\建筑.JPG");

I2=imresize(I1,[300 300]);%将图像转换成与掩膜同等大小的矩阵

I3=im2gray(I2);%转换为二维灰度图像

BW = edge(I3,'canny');%边缘检测

my_mask = mask_rectangle(BW);%与生成的掩膜进行与运算

% imshow(BW);%显示完整的图像

imshow(my_mask);%显示与掩膜进行运算后的图像

%功能函数(矩形掩膜函数)

function mask_s = mask_rectangle(img)

%生成【300 300】矩阵掩膜

%矩阵窗(矩形内为ones矩阵)为(50<=j)&&(j<=250)&&(100<=i)&&(i<=300)

%生成的掩膜与图像[300 300]做与运算并输出

mask=ones([300 300]);

for i=1:300

for j=1:300

if ((50<=j)&&(j<=250)&&(100<=i)&&(i<=300))

h = 1;

else

h = 0;

end

mask_d(i,j) = h*mask(i,j);

end

end

mask_s=mask_d&img;%与运算

end

边缘检测后的完整原图

进行掩膜后,你感兴趣的部分(当然可以根据你感兴趣的区域设计属于你的掩膜) 

这是上面说的矩形掩膜 (当然可以根据你感兴趣的区域设计属于你的掩膜)

精彩链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: