16.各种材料提交需要不同底色的登记照,因此登记照换底可以满足不同场景需求。现有一张“ID_Photo”文件名的登记照,要求将蓝色背景换成红色背景,另外,需要排列成3×4的版面供打印
谁可以帮我写一个MATLAB问题啊
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- joel_1993 2021-10-23 20:35关注
你好,差不多颜色替换了:
I1 = double(imread('a.jpg')); [m,n,p] = size(I1); I = reshape(I1, m*n, p); blue = [67,142,219]; blue = blue/max(blue); red = [255,0,0]; q = I./repmat(max(I,[],2),1,p); Q = sqrt(sum((q-repmat(blue,m*n,1)).^2,2))<=0.1; blue = mean(q(Q,:)); Q = sqrt(sum((q-repmat(blue,m*n,1)).^2,2))<=0.1; I(Q,:) = repmat(red, sum(Q), 1); blue = mean(q(Q,:)); Q = sqrt(sum((q-repmat(blue,m*n,1)).^2,2))<=0.12; I(Q,:) = repmat(red, sum(Q), 1); I = reshape(I, size(I1,1), size(I1,2), size(I1,3)); figure(1);clf Y = zeros(size(I)); Ydct = Y; I = I/255; s = 3; r = 3; Y(:,:,1)= medfilt2(I(:,:,1),[s,r]); Y(:,:,2)= medfilt2(I(:,:,2),[s,r]); Y(:,:,3)= medfilt2(I(:,:,3),[s,r]); Y = Y*255; Y = uint8(Y); imshow(Y); figure(2);clf Y = Y(1:2:end,1:2:end,:); [m,n,p] = size(Y); ratio = floor(size(Y,2)/60); Z = uint8(255*ones(m+2*ratio, n+2*ratio,p)); Z(ratio+1:m+ratio,ratio+1:n+ratio,:) = Y; [K,P,R] = size(Z); M = 3; N = 4; A = uint8(zeros(K*M,P*N,R)); for i = 1:M for j = 1:N A((i-1)*K+1:i*K,(j-1)*P+1:j*P,:) = Z; end end imshow(A)
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 表达式必须是可修改的左值
- ¥15 如何绘制动力学系统的相图
- ¥15 对接wps接口实现获取元数据
- ¥20 给自己本科IT专业毕业的妹m找个实习工作
- ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
- ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
- ¥50 mac mini外接显示器 画质字体模糊
- ¥15 TLS1.2协议通信解密
- ¥40 图书信息管理系统程序编写
- ¥20 Qcustomplot缩小曲线形状问题