[問題] 兩張等尺寸圖片疊合

作者: chengyi823 (Chengyi)   2014-12-12 00:31:56
大家好,小弟是新手,
目前在做兩張等尺寸(160*128)圖片疊合,
並因希兩張圖片之RGB值可以改變,作多種不同比例的疊合,
一張為黑白影像,一張為單純綠色(R=B=0)
疊合方式希望選取圖片每點(pixel)的RGB值較高部分,
RGB較低部分則捨去,由此
生成新的圖形,但生成的新圖形,一直與原圖一樣
麻煩各位幫忙解惑了,謝謝
程式碼如下
讀取1&2張圖片
A=imread('s1.bmp');
S1=size(A)
AR=A(:,:,1);
AG=A(:,:,2);
AB=A(:,:,3);
AR1=reshape(AR,1,20480);
AG1=reshape(AG,1,20480);
AB1=reshape(AB,1,20480);
X=imread('20.bmp');
S2=size(X)
XR=X(:,:,1);
XG=X(:,:,2);
XB=X(:,:,3);
XR1=reshape(AR,1,20480);
XG1=reshape(AG,1,20480);
XB1=reshape(AB,1,20480);
決定圖1&圖2RGB
Glevel=[35 35 35 38]; % [R G B G2]
H=128;
L=160;
imshow(reshape(AR1,H,L))
figure;
imshow(reshape(AG1,H,L))
figure;
imshow(reshape(AB1,H,L))
PR=reshape(AR1,H,L);
PG=reshape(AG1,H,L);
PB=reshape(AB1,H,L);
for j=1:size(Glevel,1)
[row2 clm2]=find((((PR==0)+(PG==0)+(PB==0)))<3); % 改字的輝度
for i=1:length(row2);
PR(row2(i),clm2(i))=Glevel(j,1);
PG(row2(i),clm2(i))=Glevel(j,2);
PB(row2(i),clm2(i))=Glevel(j,3);
end
imshow(PG)
[row clm]=find((((PR==0)+(PG==0)+(PB==0)))==3); % 改底的輝度
for i=1:length(row);
PG(row(i),clm(i))=Glevel(j,4);
end
% imshow(PG)
% figure;
% imshow(PR)
% figure;
% imshow(PB)
end
作者: sunev (Veritas)   2014-12-12 01:21:00
j=1:size(Glevel,1) ?
作者: ntme (one shot one kill)   2014-12-12 17:00:00
黑白或純綠圖片用一個二維矩陣應該就可以了??然後就只是比較相同位置誰的值比較大就選誰不太懂為什麼要存成RBG三個矩陣作?還有字跟底的輝度是什麼意思阿??
作者: winnie4952 (WinNie BeAr )   2014-12-12 18:08:00
看程式只對S1做處裡 S2只取出來就沒動了假如S1是他所謂的RGB 但只有G有顏色他的字輝度就是G有值的地方R,G,B=35底輝度就是G沒顏色 就變成38原PO假如是只要用黑白影像對G比較,留大的值直接C1=a>=b; C2=b>a; CC=a.*C1+b.*C2; 就可以了
作者: chengyi823 (Chengyi)   2014-12-12 20:43:00
感謝各位解惑

Links booklink

Contact Us: admin [ a t ] ucptt.com