如题,主要目的是想经过一个数字波可以输出的波形发生器和恢复图像,并且保证它的高效率
I=imread("Lena Soderberg.png");
R=I(:,:,1);
G=I(:,:,2);
B=I(:,:,3);
row=size(R,1);
col=size(R,2);
trR=R';
% writematrix(P,'二进制.csv');
% 0~255,10进制拓宽行变成8位2进制
rBin=dec2bin(trR,8);
rBegin=0;
rBinDivide=zeros(row,col8);
while(rBegin<(rowcol))
rAdd=1;
rBegin=rBegin+1;
while(rAdd<=8)
rRow=mod(rBegin,col);
if(rRow==0)
rRow=col;
end
rBinRow=ceil(rBegin/col);
rBinDivide(rBinRow,(rRow-1)*8+rAdd)=str2double(rBin(rBegin,rAdd));
rAdd=rAdd+1;
end
end
% 0~255,2进制复原行变成10进制
rBack=0;
rDec =zeros(row,col);
while(rBack<rowcol)
rlenth = 0;
rNewStr='';
rDecCol=mod(rBack,col)+1;
rBack=rBack+1;
rDecRow=ceil(rBack/col);
while (rlenth<8)
rNewStr=insertAfter(rNewStr,rlenth,num2str(rBinDivide(rDecRow,(rDecCol8+rlenth-7))));
rlenth=size(rNewStr,2);
end
rNewDec=bin2dec(rNewStr);
rDec(rDecRow,rDecCol)=rNewDec;
end
自己尝试了一下,因为刚学,编组太多恢复过程非常慢,不知道有没有可以解决一下,最终目的是想能够实时传输摄像头的视频内容