如何解决opencv android:改变`Cv.Type`会导致像素大小改变 问题:
我在 android 上使用 OpenCV 来构建一个 DCT 隐写术 应用程序。
我必须根据CvType
、dct
..等不同的过程更改图像垫的idct
。
步骤:(以及该步骤所需的 mat
类型)
- 加载图像位图并从中获取图像
mat
(CvType.CV_8UC4)。 - 将图像从 RGB 转换为 YCrCb
- 将图像分成 8 x 8 块。
- 中心像素值大约为 0 [0-255 => -128-127] (CvType.CV_32SC1)
- 应用 DCT 变换以获得块的 DCT 系数。 (CvType.CV_32FC1)
- 量化 [用量化矩阵划分 DCT 系数]
- 现在用我们的秘密消息替换非 0/1/DC 系数的 LSB。 (CvType.CV_8SC1)
- 逆量化**(CvType.CV_32FC1)**
- 逆 DCT
- [0-255
- ycbcr 转 RGB
- 从图像
mat
中获取位图 (CvType.CV_8UC4) - 将位图另存为 jpeg。
问题:
在 11th
步骤中,我必须将图像垫转换为原始类型 imOut.convertTo(imOut,imIn.type())
。
通过测试,我发现在此步骤中,一小部分像素值发生了变化(例如,DCT 系数之一:13
到 12
),这将 steg 消息从 {{1 }} 到 aaaaaa
有什么解决办法吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。