sherri 发表于 2007-7-23 18:33

请教一个较奇怪的有关图像的问题

这是一个有关图像数字水印的问题:

% 原始图像
I = imread(....);
% 水印图像
W = imread(....);
   
% .................
% 水印嵌入过程
% ..................
% 得到的嵌有水印的图像
Wm = ...;
% 保存到硬盘上
imwrite(Wm,'imbedM.bmp','bmp');

用下面两种方法提取水印:

1、如果从硬盘将嵌有水印的图像读入
J = imread('imbedM.bmp','bmp');
% 水印提取过程:
%.......................
% 利用 I 和 J 进行水印提取
%..................
% 结果不能正确提取出水印

2、如果直接利用前面得到的嵌有水印的图像Wm
% 水印提取过程:
%.........................
% 利用 I 和 Wm 进行水印提取
%..................
% 结果能正确提取出水印

这与图像文件的储存有关系吗?该怎么解决呢?

花如月 发表于 2007-7-23 19:37

imwrite用错!将imwrite(Wm,'imbedM.bmp','bmp');改成imwrite(Wm,'imbedM.bmp');试试看

sherri 发表于 2007-7-24 09:53

试过了,还是那样。

花如月 发表于 2007-7-24 10:03

回复 #3 sherri 的帖子

最可能就是保存和读取的时候出问题了
把J = imread('imbedM.bmp','bmp');换成J = imread('imbedM.bmp');再试试
如果问题还在,写完的就读,验证写的是否正确。

[ 本帖最后由 花如月 于 2007-7-24 11:27 编辑 ]

sherri 发表于 2007-7-25 09:29

照您说的前一句imwrite,后一句马上就imread,命令中带fmt或不带fmt,结果都一样,就是提不出水印;但只要没有这样的输入输出操作就能提出水印,真是好奇怪!!!

花如月 发表于 2007-7-25 10:17

回复 #5 sherri 的帖子

不太可能的,写了再读数据就和原来的不一样了?见鬼了

既然是讨论性质,希望你能把图像矩阵和处理程序分享一下。有利于问题的解决,而不是这样猜测,同时也有利于后来者的学习:handshake

[ 本帖最后由 ChaChing 于 2010-1-28 16:44 编辑 ]

eight 发表于 2007-7-25 13:35

原帖由 sherri 于 2007-7-25 09:29 发表 http://www.chinavib.com/forum/images/common/back.gif
照您说的前一句imwrite,后一句马上就imread,命令中带fmt或不带fmt,结果都一样,就是提不出水印;但只要没有这样的输入输出操作就能提出水印,真是好奇怪!!!

建议自己一步一步调试一下,就会发现问题所在了
页: [1]
查看完整版本: 请教一个较奇怪的有关图像的问题