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 没有证书,nginx怎么反向代理到只能接受https的公网网站
- ¥50 成都蓉城足球俱乐部小程序抢票
- ¥15 yolov7训练自己的数据集
- ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
- ¥15 电力市场出清matlab yalmip kkt 双层优化问题
- ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
- ¥20 matlab yalmip kkt 双层优化问题
- ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
- ¥88 实在没有想法,需要个思路
- ¥15 MATLAB报错输入参数太多