MATLAB从原图,灰度图,二值图,反白图,边缘检测

MATLAB数字图像处理,使用MATLAB可以将一张图变为“线稿”(显然效果不太行,可以再使用PS),如图:

在这里插入图片描述
一、读取一张图片的文件。方法详见:读取,剪裁一张图像

比如我们打开一个图像文件hpym.jpg,它的像素矩阵是三维的,包括二维的像素值和一个RGB维度

A0 = imread('hpym.jpg');

灰度化

然后把它转换成灰度图像,使用以下语句

A1 = rgb2gray(A0);

这样生成的图像就是原图片A0的灰度图像,调用imshow(A1)展示

二值化
转换成灰度图像之后,把它变成二值图像,也就是黑白图像,没有灰度的渐变。像素矩阵是二维的逻辑值,1和0,根据阈值进行变换。
调用以下函数,灰度图像转换成二值图像

level = graythresh(A1)
A2 = im2bw(A1, level)

这样生成的图像A2就是一个二值图像,调用imshow(A2)展示。

边缘检测
边缘分割,得到它的轮廓图。它需要一系列算法,它也有很多种算子可以作为分割的方法去分割。例如sobel算子
读取一个二值图像A2,然后检测边缘,得到边缘图像

A3 = edge(A2, 'sobel')

这里第二个参数是边缘检测的算子,除了sobel还有roberts, canny,等等

反白化
这样的图像是白色的轮廓,黑色的背景。如果需要把白色和黑色互换一下,也就是反白操作,变成白底黑线。可以对A3进行如下操作

A4 = 255 - A3

这样得到的A4就是反白图像。无奈的是,边缘通常是不连续的,如果想更好看一些,就要进行其他处理,或者直接人工PS处理了。

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值