在Matlab中以jpeg格式保存图像

时间:2014-03-17 17:58:56

标签: matlab image-processing jpeg

我是Matlab中的图像处理新手并且陷入困境。请帮助我理解这个问题或者给我一些指导。我也为大问题陈述道歉。我非常感谢你能为我提供的任何指导。

问题:我正在开展一个项目,将一个彩色图像(秘密图像)存储在另一个彩色图像(封面图像)中。这两个图像都是jpg格式。在处理之后,我创建了一个看起来类似于封面图像的嵌入图像,但也存储了秘密图像。嵌入的图像正确存储了秘密图像位。然而,在提取回秘密图像位时,我无法获得彩色秘密图像。以下是我用来重建秘密图像的两种方法。

方法1:在重新创建秘密图像时,我创建了一个秘密图像大小的零矩阵,并开始将秘密图像位存储在矩阵中。但这个重新创建的图像看起来完全是白色的,只有很少

方法2:我手动创建了一个白色jpg图像,并在我的代码中读取该图像。然后我开始在其中存储秘密图像位。在显示时,该图像正确地显示了秘密图像。

两者的唯一区别在于,在第一种方法中,我创建了一个零矩阵并存储了秘密图像位。在第二种方法中,我读取白色jpg图像并存储秘密图像位。在第一种方法中,我无法重新创建秘密图像,但在第二种方法中,我可以。

两种可能的解决方案:

  1. 在方法1中:从秘密图像矩阵中正确获取秘密图像。
  2. 在方法2中:通过代码自动生成所需尺寸的白色jpg图像,然后将其读入代码并继续。
  3. 请建议我实施上述任何一种解决方案。

    提前致谢。

1 个答案:

答案 0 :(得分:0)

JPG是一种有损压缩技术,这意味着在创建图像时数据会丢失。如果您通过更改每个像素最低有效位(或类似的东西)将图像“嵌入”另一个像素,然后将其另存为JPG,则可能会丢失某些数据。

解决方案:使用无损压缩技术,例如.PNG

祝你好运!