首页 > 解决方案 > 从 jpeg 图像中删除图标

问题描述

有没有办法从图像中删除原始没有图标的图标。

也许在 hexdump 或其他东西的帮助下?

这是图像的示例。

在此处输入图像描述

有没有办法从中删除心形图标?

*我真的不需要这张图片,它只是举例

标签: imageimage-processingrecoveryhexdump

解决方案


一种方法是使用颜色阈值来获得二进制掩码,该掩码可用于隔离要保留的所需区域。一旦我们有了这个面具,我们就可以逐位 - 并有效地去除心脏


在使用 HSV 上下限进行颜色阈值化后,我们得到了这个掩码

在此处输入图像描述

为了移除心脏,我们反转表示图像中我们想要保留的所有区域的掩码,然后按位和输入图像。由于您没有指定要替换它的内容,因此我只是将删除的区域用白色着色。这是一个使用 Python 和 OpenCV 的实现

在此处输入图像描述

import numpy as np
import cv2

image = cv2.imread('1.jpg')
original = image.copy()
hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
lower = np.array([0, 138, 155])
upper = np.array([179, 255, 255])
mask = cv2.inRange(hsv, lower, upper)
invert = 255 - mask
result = cv2.bitwise_and(original, original, mask=invert)
result[invert==0] = (255,255,255)

cv2.imshow('mask', mask)
cv2.imshow('result', result)
cv2.waitKey()

推荐阅读