imwrite 函数的行为方式很奇怪。我修改了图像的单个像素值。然而,在执行 imwrite 之后,像素值要么更改为全新的值,要么保持不变。
function imwriteCheck(input_image,output_image)
a=imread(input_image);
fprintf('\nBefore modification a(1,1,1)=%d\n',a(1,1,1));
a(1,1,1)=50;
fprintf('\nAfter modification a(1,1,1)=%d\n',a(1,1,1));
imwrite(a,output_image);
b=imread(output_image);
fprintf('\nValue at b(1,1,1)=%d\n',b(1,1,1));
end
我用两张图片测试了这个函数,输出如下:
>> imwriteCheck('MOM.jpg','MOMout.jpg')
Before modification a(1,1,1)=206
After modification a(1,1,1)=50
Value at b(1,1,1)=170
>> imwriteCheck('durga.jpg','durgaout.jpg')
Before modification a(1,1,1)=63
After modification a(1,1,1)=50
Value at b(1,1,1)=63
我不明白为什么会这样。感谢您的帮助。