【发布时间】:2013-06-07 01:29:41
【问题描述】:
所以,正如您在左上角看到的那样,有变色。这违背了隐写术的目的。
我很确定这与我在图像中隐藏文本的方式有关。这是我的做法,使用Processing:
void hide(PImage payload,PImage carrier){
if(payload.width > carrier.width){
print("Carrier can not be smaller than payload");
return;
}
for(int x = 0; x < payload.width; x++){
int payloadPixel = payload.pixels[x];
int carrierPixel = carrier.pixels[x];
carrierPixel = carrierPixel & 0xFFFFFF00;
payloadPixel = payloadPixel & 0x000000FF;
carrierPixel = carrierPixel | payloadPixel;
carrier.pixels[x] = carrierPixel;
}
carrier.updatePixels();
carrier.save("newTulips.JPG");
}
我能做些什么让它隐藏得更好?
【问题讨论】:
-
这个不清楚;您是在问代码中的错误在哪里,还是在寻求更好的机制?
-
@OliCharlesworth 更好的机制
-
我想做得更好需要图像分析技术,以尽可能减少干扰......祝你好运!
-
@fge 你能告诉我更多吗?
-
虽然我不知道任何具体的技术/算法,但我相信诀窍是分析相邻像素以确定您可以废弃多少位以便插入自己的(在这里,您总是废弃 8 32);但是这样的过程无论如何都是单向的,除非您可以将更改像素的矩阵与原始图像一起发送,这完全违背了隐写术的目的:(
标签: java image-processing processing steganography