MATLAB基础图像处理算法

  1. 一、腐蚀

我们假设结构元素为S,则腐蚀算法如下:

  其中,F为二值图像原图,X为结构元素原点所在的二值图像中的连通域。

  假设F中目标像素为255(白色),非目标为0(黑色),当结构元素S原点移动到点(x,y)时,如果S中所有点均包含在X中(X中对应在S中所有点的位置均为255),则在腐蚀后的二值图像中,对应于S原点的位置为255(白色),否则为0(黑色)。

  用通俗的话来说就是:用结构元素作为模板在原始二值图像种平滑一遍,扫描图像的每一个像素,用结构元素中的每一个元素与其覆盖的二值图像做“与”操作(假设结构元素都为1),如果结果都为1,则二值图像中对应结构元素原点位置的像素值为1,否则为0。

腐蚀能够消融物体的边界,而具体的腐蚀结果与图像本身结构元素形状有关。

I=imread('/1.jpg');

se = strel('square',16)

Ib = imerode(I,se);%腐蚀

se = strel('square',32)

Ic = imerode(I,se);%腐蚀

figure,

subplot(1,3,1);imshow(I);

subplot(1,3,2);imshow(Ib);

subplot(1,3,3);imshow(Ic);

常用的方法包括:灰度变换增强、直方图增强、灰度变换增强、灰度变换增强是在空间域内对图像进行增强的一种简单而有效的方法。灰度变换增强不改变原图像中像素的位置,只改变像素点的灰度值,并逐点进行,和周围的其他像素点无关。为了进行灰度变换,首先需要获取图像的直方图。在MATLAB中,可以通过编写程序获取灰度图像的直方图,也可以通过函数imhist( )获取灰度图像的直方图。空域内处理是直接对图像进行处理,频域内处理是在图像的某个变换域内,对图像的变换系数进行运算,然后通过逆变换获得图像增强效果。空域内的图像增强就是调整灰度图像的明暗对比度,是对图像中各个像素的灰度值直接进行处理。

  1. 二、膨胀
  2. 膨胀和腐蚀相反,能使物体边界扩大,

  3. I=imread('D:/3-matlab-example/2/2.png');

    Ie1 = imerode(I,[1,1,1;1,1,1;1,1,1]);%3x3正方形结构元素的腐蚀

    Ie2 = imerode(Ie1,[0,1,0;1,1,1;0,1,0]);%3x3十字形结构元素的腐蚀

    Id1 = imdilate(Ie2,[1,1,1;1,1,1;1,1,1]);%3x3正方形结构元素的膨胀

    Id2 = imdilate(Id1,[1,1,1;1,1,1;1,1,1]);%3x3正方形结构元素的膨胀

    Id3 = imdilate(Id2,[0,1,0;1,1,1;0,1,0]);%3x3十字形结构元素的膨胀

    figure,

    subplot(2,3,1);imshow(I);

    subplot(2,3,2);imshow(Ie1);

    subplot(2,3,3);imshow(Ie2);

    subplot(2,3,4);imshow(Id1);

    subplot(2,3,5);imshow(Id2);

    subplot(2,3,6);imshow(Id3);

  4. 三、图像增强

I = imread('lena_color_512.tif');

I_G = rgb2gray(I);% 将真彩色图像RGB转换为灰度强度图像

row = size(I_G, 1);% 表示取矩阵I_G的列数

column = size(I_G, 2);

N = zeros(1,256);% 这个产生一个1*256的全0矩阵

for i = 1: row

    for j = 1: column

        k = I_G(i, j);

        N(k+1) = N(k+1) + 1;

    end

end

figure

subplot(121), imshow(I_G);

subplot(122), bar(N);

axis tight;

当然也可以直接对灰度图使用imhist函数不进行别的操作,只绘制直方图

I = imread('lena_color_512.tif');

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
黑白图片的彩色化是计算机视觉中的一个重要任务。深度学习算法中的卷积神经网络 (CNN) 已经在许多图像处理任务中取得了优异的成果。本文将介绍如何使用 MATLAB 中的深度学习工具箱中的卷积神经网络来实现黑白图片彩色化。 首先,需要准备一些训练数据。可以从图像库中下载一些带有彩色标签的图片,然后使用 MATLAB 中的图像处理工具箱将这些彩色图片转换为黑白图片。这样就可以得到一些黑白图片和相应的彩色标签。 接下来,需要设计一个卷积神经网络来学习黑白图片和彩色标签之间的映射关系。可以使用 MATLAB 中的深度学习工具箱来构建网络。例如,可以使用卷积层、池化层、批归一化层和全连接层等常用的网络层来构建卷积神经网络。其中,卷积层和池化层可以提取图片的特征,批归一化层可以加速网络收敛,全连接层可以将提取的特征映射到彩色标签空间。 构建好网络后,就可以开始训练了。可以使用 MATLAB 中的训练函数来训练网络。在训练过程中,需要设置一些训练参数,例如学习率、迭代次数和批量大小等。 训练完成后,可以使用测试数据来评估网络的性能。可以使用 MATLAB 中的测试函数来测试网络的性能。在测试过程中,可以计算一些评价指标,例如均方根误差 (RMSE) 和结构相似性指数 (SSIM) 等。 最后,可以使用训练好的卷积神经网络来对新的黑白图片进行彩色化。可以使用 MATLAB 中的预测函数来实现彩色化。在预测过程中,将黑白图片输入到网络中,网络将输出彩色标签,然后可以使用 MATLAB 中的图像处理工具箱将彩色标签转换为彩色图片。 以上就是使用 MATLAB 中的深度学习工具箱和卷积神经网络实现黑白图片彩色化的基本流程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值