上文介绍了MATLAB R2021a中图像工具包及图片导入和基本的处理操作,MATLAB R2021a 图像处理之旅 — 1。接下来我们来看看图像处理技术中图像分割相关的操作。
3 图像分割
图像分割是很多高阶图像效果中的基础处理步骤,如车道线的识别,前景人物识别,后景背景替换等等应用。
3.1 图像二值化
img = imread("IMG_001.jpg");
gs = im2gray(img);
gsAdj = imadjust(gs);
imshow(gsAdj);
BW = gsAdj > (255/2);
imshow(BW);
imhist(gsAdj);
BW = gsAdj > 200;
imshow(BW);
BW = imbinarize(gsAdj);
imshow(BW);
BWadapt = imbinarize(gsAdj,"adaptive");
imshowpair(BW,BWadapt,"montage");
BWadapt = imbinarize(gsAdj,"adaptive","ForegroundPolarity","dark");
imshowpair(gsAdj,BWadapt,"montage");
3.2 二值图像的处理
经过上述处理后,我们能通常都能得到符合要求的二值图像,接下来我们要对二值图像进行处理得到我们需要的结果。
I = imread("IMG_006.jpg");
gs = im2gray(I);
gsAdj = imadjust(gs);
BW = imbinarize(gsAdj,"adaptive","ForegroundPolarity","dark");
imshowpair(I,BW,"montage");
I2 = imread("IMG_005.jpg");
gs2 = im2gray(I2);
gs2Adj = imadjust(gs2);
BW2 = imbinarize(gs2Adj);
imshowpair(I2,BW2,"montage");
S = sum(BW,2);
plot(S);
S2 = sum(BW2,2);
plot(S2);
从以上结果我么可以看出,如果带文字图片的二值化数据和很容易看出规律,而一般图像则不行。但其仍会受到一些其它因素的影响,比如说噪声大,背景纹理干扰等。
|