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

Method get_diff

StegaPy/plugin/randlsb/random_lsb_plugin.py:124–142  ·  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

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

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