我必须保存图像。但是当我尝试保持尺寸相同时,像素值会发生变化。有没有办法保持两者完好无损。
C=imread('download.jpg');
C=rgb2gray(C);
%convert to DCT
[r1 c1]=size(C);
CDCT=floor(dct2(C));
dct=floor(dct2(C));
[r c]= size(dCipherText);
bye=c; %lenght of message bits
for i=r1:r1
for j=c1:-1:c1-28
.....%some operation on CDCT
end
end
imshow(idct2(CDCT),[0 255])
i=idct2(CDCT);
set(gcf,'PaperUnits','inches','PaperPosition',[0 0 c1 r1])
print -djpeg fa.jpg -r1
end
答案 0 :(得分:1)
请勿使用打印来保存图片。 使用:
imwrite(i,'downdload_dct.jpg')
print
将使用图中定义的纸张尺寸等,而不是图像数据本身。 imwrite
使用i
中的数据。如果您只想重新保存图像,则不需要imshow
。
-
更新 - 抱歉我现在看到,当你的意思是'缩放'时,你不是指图片的缩放,而是像素值的缩放,以及从标量转换回颜色。 imshow
仅“缩放”屏幕上的内容,而不是实际数据。因此,您需要手动/数字地执行此操作。假设i
是真实的,那么这样的事情就行了。
% ensure i ranges from 1 to 255
i = 1 + 254*(i-min(i(:))*(max(i(:))-min(i(:))) ;
% convert indices to RGB colour values (m x n x 3 array)
i = ind2rgb(i,jet(256));
未经测试!