将转换为二值版本的图像与原始图像放在一起进行对比:
使用restrict函数缩放原始图像和二值图像
img = restrict(img)
img_binary = restrict(RGB.(Gray.(img_binary)))
使用size标识图像缩放版本的宽度
img_width = size(img, 2)
使用填充功能创建新图像,其宽度是原来的两倍
combined_image = fill(RGB4{Float32}(0.,0.,0.), size(img) .* (1, 2))
将图像放在一起进行对比
combined_image[:, 1:img_width] = img
combined_image[:, img_width+1:img_width*2] = img_binary
imshow(combined_image)
形态学运算也可以应用于灰度图像。
数学形态学是一组与图像的形状或特征有关的非线性运算和技术。图像形态学有两个基本要素:
-
二进制或灰度图像
-
结构元素
已经讨论了有关图像和配色方案的先决条件,但是结构元素是新的。结构元素通常是一个3x3二值块,可在图像上滑动并更新它。滑动结构元素可以实现两个基本操作:
-
图像侵蚀:从对象边界去除像素
-
图像膨胀:将像素添加到图像中对象的边界
从ImageMorphology
包进行的侵蚀和膨胀仅支持3x3结构元素。 3×3正方形是用于形态学运算的最流行的结构元素。较大的结构元素会产生更极端的侵蚀或膨胀效果,通常通过多次重复3x3结构元素运算获得相似的结果。
图像侵蚀
图像侵蚀是数学形态学领域的两个基本运算符之一。侵蚀是缩小图像前景或1值对象的过程。它可以平滑对象边界并去除小物体。
为了了解图像侵蚀的工作方式,首先在包含白噪声的简单图像上进行尝试,然后继续比较将其应用于照片的二值和灰度版本时的结果。
使用侵蚀分离物体
对于此任务,使用如下图片。它具有许多不同的连接图形,并且两侧都添加了噪声:
从加载图像并将其转换为灰度开始:
using Images, ImageView, ImageMorphology
geom_img = load(“pictures/geometrical-figures-and-noise.jpg”);
geom_img_binary = Gray.(Gray.(geom_img) .> 0.5);#keeps white objects white
接下来&#