繁体   English   中英

怎样去除图片中手部周围的黑点

[英]How can I remove black dots around hand in image

使用 opencv 在 python 中捕获图像

我想制作这张图片:

代码:

# Image Processing
gray = cv2.cvtColor(roi, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (51,51), 15) 
th3 = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 11, 2)
ret, test_image = cv2.threshold(th3, 10, 255, cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU)

在此处输入图像描述

有点像这样:

在此处输入图像描述

我认为你应该尝试关闭操作。 它会完成这项工作。

gray = cv2.cvtColor(roi, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (51,51), 15) 
th3 = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 11, 2)
ret, test_image = cv2.threshold(th3, 10, 255, cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU)

kernel = np.ones((3, 3), np.uint8)

# opening the image
opening = cv2.morphologyEx(binr, cv2.MORPH_OPEN,
                           kernel, iterations=1)

如果生成的图像不够好,请尝试增加内核大小

如果你会考虑Scikit-Image ,而不是 OpenCV,这是一种方法。

import numpy as np
import matplotlib.pyplot as plt

from skimage import io
from skimage import segmentation
from skimage import morphology

image = io.imread("your_image.jpeg")
seg_img = segmentation.chan_vese(image,mu=.3) 
rsh_img = morphology.remove_small_holes(seg_img,area_threshold=32)

原始图像和两个后期处理版本

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM