rgb = imread(‘s1.bmp’);
I = rgb2gray(rgb);
[n1,n2] = size(I);
%灰度图
figure,imshow(I),title(‘灰度图’)
tic
h = ones(9)/81;
I = uint8(conv2(I,h));
figure,imshow(I),title(‘线性均值滤波’)
BW = imbinarize(I);
figure,imshow(BW),title(‘二值化’)
B = ones(21);%结构元素
BW = -imerode(BW,B) + BW;
figure,imshow(BW),title(‘形态学边界提取’)
BW = bwmorph(BW, ‘thicken’);
figure,imshow(BW),title(‘加粗边界’)
BW = not(bwareaopen(not(BW), 300));
figure,imshow(BW),title(‘把空洞填了’)
%进行形态学运算
B = strel(‘line’50,90);
BW = imdilate(BW,B);
BW = imerode(BW,B);
figure,imshow(BW),title(‘再闭操作之后’)
B = strel('line',10,0);
BW = imerode(BW,B);
figure,imshow(BW),title(‘闭操作之后再腐蚀’)
%%BW = gpuArray(BW);%%将数据载入gpu可以加速,电脑不一定支持<
实现图像处理方法
本文介绍了一种图像处理流程,包括灰度化、线性均值滤波、二值化、形态学边界提取、加粗边界、空洞填充、形态学操作以及人脸识别。通过MATLAB代码实现,涉及图像的预处理、二值化和区域分割,最终通过检测连通域确定人脸位置。

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



