[问题] 两张等尺寸图片叠合

楼主: 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