验证目标图像中是否包含指定的数字水印,并返回相关性得分。
(self, stego_data: bytes, stego_filename: Optional[str],
orig_sig_data: bytes)
| 144 | raise StegaPyException(str(e), StegaPyErrors.UNHANDLED_EXCEPTION, self.NAMESPACE) |
| 145 | |
| 146 | def check_mark(self, stego_data: bytes, stego_filename: Optional[str], |
| 147 | orig_sig_data: bytes) -> float: |
| 148 | """验证目标图像中是否包含指定的数字水印,并返回相关性得分。""" |
| 149 | if Purpose.WATERMARKING not in self.plugin.get_purposes(): |
| 150 | raise StegaPyException( |
| 151 | "插件不支持水印", |
| 152 | StegaPyErrors.PLUGIN_DOES_NOT_SUPPORT_WM, |
| 153 | self.NAMESPACE |
| 154 | ) |
| 155 | |
| 156 | try: |
| 157 | correl = self.plugin.check_mark(stego_data, stego_filename, orig_sig_data) |
| 158 | if correl is None or (isinstance(correl, float) and correl != correl): # NaN check |
| 159 | return 0.0 |
| 160 | return float(correl) |
| 161 | except StegaPyException: |
| 162 | raise |
| 163 | except Exception as e: |
| 164 | raise StegaPyException(str(e), StegaPyErrors.UNHANDLED_EXCEPTION, self.NAMESPACE) |
| 165 | |
| 166 | def generate_signature(self) -> bytes: |
| 167 | """生成用于验证的数字水印签名数据。""" |