去除图像噪声 Args: image: 输入图像 kernel_size: 滤波核大小 Returns: 去噪后的图像 Raises: ImageProcessError: 当处理失败时
(image: Image.Image, kernel_size: int = 3)
| 167 | |
| 168 | @staticmethod |
| 169 | def remove_noise(image: Image.Image, kernel_size: int = 3) -> Image.Image: |
| 170 | """ |
| 171 | 去除图像噪声 |
| 172 | |
| 173 | Args: |
| 174 | image: 输入图像 |
| 175 | kernel_size: 滤波核大小 |
| 176 | |
| 177 | Returns: |
| 178 | 去噪后的图像 |
| 179 | |
| 180 | Raises: |
| 181 | ImageProcessError: 当处理失败时 |
| 182 | """ |
| 183 | try: |
| 184 | img_array = image_to_numpy(image) |
| 185 | |
| 186 | # 使用中值滤波去噪 |
| 187 | if len(img_array.shape) == 3: |
| 188 | # 彩色图像 |
| 189 | denoised = cv2.medianBlur(img_array, kernel_size) |
| 190 | else: |
| 191 | # 灰度图像 |
| 192 | denoised = cv2.medianBlur(img_array, kernel_size) |
| 193 | |
| 194 | return numpy_to_image(denoised, image.mode) |
| 195 | |
| 196 | except Exception as e: |
| 197 | raise ImageProcessError(f"图像去噪失败: {str(e)}") from e |
| 198 | |
| 199 | @staticmethod |
| 200 | def binarize_image(image: Image.Image, threshold: int = 128, |
no test coverage detected