0
RGB 이미지의 모든 비트를 dec2bin()
함수로 이진 (픽셀 색상 단위)으로 변환 한 후 XOR하고 싶습니다. 먼저 scr(8)=0
을 모두 0을 포함한다고 선언했는데, 내가 원하는 것은 ar(1)=xor(scr(1),pic(1))
이 완료되면 , scr(7)=scr(8)
, scr(8)=ar(1)
등등에 저장해야합니다. 코드를 작성했지만 많이 사용합니다. 처리 할 시간. 코드 속도를 높이는 방법을 알고 있다면 저를 도우십시오. 나는 여기에 붙어있어 최종 프리젠 테이션을 앞두고있다.RGB 이미지의 모든 색상을 XOR 처리하면서 왼쪽 시프트를 구현하는 빠른 알고리즘
이 내 코드입니다 :
pic=imread('peppers.png');
[imr,imc,clr]=size(pic);
scr(8)=0;
i=8;
img2=pic;
pic2(8)=0;
pic1(8)=0;
for row=1:imr;
for col=1:imc
for k=1:clr
img2(row,col,k)=bitxor(pic(row,col,k),66);
pic1=dec2bin(img2(row,col,k),8);
for n=1:8
pic2(n)=xor(pic1(n),scr(n));
if n==1
scr(i)=pic2(n);
end
if n==2
scr(i-1)=scr(i);
scr(i)=pic2(n);
end
if n==3
scr(i-2)=scr(i-1);
scr(i-1)=scr(i);
scr(i)=pic2(n);
end
if n==4
scr(i-3)=scr(i-2);
scr(i-2)=scr(i-1);
scr(i-1)=scr(i);
scr(i)=pic2(n);
end
if n==5
scr(i-4)=scr(i-3);
scr(i-3)=scr(i-2);
scr(i-2)=scr(i-1);
scr(i-1)=scr(i);
scr(i)=pic2(n);
end
if n==6
scr(i-5)=scr(i-4);
scr(i-4)=scr(i-3);
scr(i-3)=scr(i-2);
scr(i-2)=scr(i-1);
scr(i-1)=scr(i);
scr(i)=pic2(n);
end
if n==7
scr(i-6)=scr(i-5);
scr(i-5)=scr(i-4);
scr(i-4)=scr(i-3);
scr(i-3)=scr(i-2);
scr(i-2)=scr(i-1);
scr(i-1)=scr(i);
scr(i)=pic2(n);
end
if n==8
scr(i-7)=scr(i-6);
scr(i-6)=scr(i-5);
scr(i-5)=scr(i-4);
scr(i-4)=scr(i-3);
scr(i-3)=scr(i-2);
scr(i-2)=scr(i-1);
scr(i-1)=scr(i);
scr(i)=pic2(n);
end
end
pic3=int2str(pic2);
img2(row,col,k)=bin2dec(pic3);
end
end
end
imwrite(img2,'peppers2.png');
imshow('peppers2.png');