MCPcopy Create free account
hub / github.com/MearaY/StegaPy / get_diff

Method get_diff

StegaPy/plugin/lsb/lsb_plugin.py:120–138  ·  view source on GitHub ↗

获取原始图像和隐写图像的差异

(self, stego_data: bytes, stego_filename: Optional[str],
                cover_data: bytes, cover_filename: Optional[str],
                diff_filename: Optional[str])

Source from the content-addressed store, hash-verified

118 return 0.0
119
120 def get_diff(self, stego_data: bytes, stego_filename: Optional[str],
121 cover_data: bytes, cover_filename: Optional[str],
122 diff_filename: Optional[str]) -> bytes:
123 """获取原始图像和隐写图像的差异"""
124 try:
125 stego_image = ImageUtil.byte_array_to_image(stego_data, stego_filename)
126 cover_image = ImageUtil.byte_array_to_image(cover_data, cover_filename)
127
128 stego_pixels = ImageUtil.get_image_pixels(stego_image)
129 cover_pixels = ImageUtil.get_image_pixels(cover_image)
130
131 # 计算差异(放大差异以便可视化)
132 diff_pixels = np.abs(stego_pixels.astype(np.int16) - cover_pixels.astype(np.int16)) * 10
133 diff_pixels = np.clip(diff_pixels, 0, 255).astype(np.uint8)
134
135 diff_image = ImageUtil.set_image_pixels(Image.new('RGB', stego_image.size), diff_pixels)
136 return ImageUtil.image_to_byte_array(diff_image, diff_filename)
137 except Exception as e:
138 raise StegaPyException(str(e), StegaPyErrors.UNHANDLED_EXCEPTION, self.NAMESPACE)
139
140 def get_readable_file_extensions(self) -> List[str]:
141 """获取支持读取的文件扩展名"""

Callers

nothing calls this directly

Calls 5

StegaPyExceptionClass · 0.85
byte_array_to_imageMethod · 0.80
get_image_pixelsMethod · 0.80
set_image_pixelsMethod · 0.80
image_to_byte_arrayMethod · 0.80

Tested by

no test coverage detected