700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > matlab修改证件照背景颜色

matlab修改证件照背景颜色

时间:2020-01-03 08:56:25

相关推荐

matlab修改证件照背景颜色

最近要用到背景为白色的证件照,可是手头上只有红底的,故用matlab弄了一个改背景颜色的程序,大体上效果还行。注意:matrix为背景区域,不同照片可能要修改一下rgb的范围。

img = imread('a.jpg');[height,width,a] = size(img);%% 选择相应的颜色背景区域% matrix = (img(:,:,1)>250) | (img(:,:,2)>=250) | (img(:,:,2)>=190); %选择白色的像素点% matrix = (img(:,:,1)<=150) & (img(:,:,2)<=200) & (img(:,:,3)>120); %选择蓝色的像素点matrix = (img(:, :, 1)>=90) & (img(:, :, 2)<=50) & (img(:, :, 3)<=50); % 选择红色像素点matrix(0.2*height:0.5*height,0.23*width:0.72*width) = 0; %中间人像区域保持不变se = strel('disk',3);matrix = imclose(matrix,se); %关操作平滑边缘%% 选择要改变背景的颜色[a,b] = find(matrix ==1);blue = [67,142,219]; %改成蓝色red = [255, 0, 0]; %改成红色white = [255,255,255]; %改成白色color = white; for i = 1:size(a)img(a(i),b(i),1) = color(1);img(a(i),b(i),2) = color(2);img(a(i),b(i),3) = color(3);end%% 平滑处理g1=medfilt2(img(:,:,1));%红g2=medfilt2(img(:,:,2));%绿g3=medfilt2(img(:,:,3));%蓝img1(:,:,1) = g1;img1(:,:,2) = g2;img1(:,:,3) = g3;imshow(img1);imwrite(img1,'b.jpg')

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。