如何删除图像中的外圆而不影响图像的其余部分?

我有一个类似于以下图像的图像。

如何删除图像中的外圆而不影响图像的其余部分?

我想删除图像的黑色和红色圆圈而不影响图像内部的红色方块(因为红色圆圈和红色方块的像素值相同)。

我尝试使用cv2.HoughCircles检测红色圆圈,并尝试将其转换为黑色,但是红色圆圈的某些部分保持不变,如图所示。

如何删除图像中的外圆而不影响图像的其余部分?

这是我用于此的代码。

import numpy as np
import cv2

image = cv2.imread("13-14.png")
output = image.copy()
gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)

circles = cv2.HoughCircles(gray,cv2.HOUGH_GRADIENT,1.3,145)

if circles is not None:
    circles = np.round(circles[0,:]).astype("int")

    for (x,y,r) in circles:
        cv2.circle(output,(x,y),r,(0,0),4)

cv2.imshow("output",np.hstack([image,output]))
cv2.waitKey(0)

有什么建议吗?预先感谢。

编辑1

我正在寻找的样本输出就是这种图像(彩色或灰度)。

如何删除图像中的外圆而不影响图像的其余部分?

wangmjdp 回答:如何删除图像中的外圆而不影响图像的其余部分?

由于正方形似乎比圆的厚度“大得多”,因此使用一些矩形核(以保持正方形的形状)进行简单的形态学开口应该在这里起作用。

那是我的解决办法:

import cv2
from skimage import io          # Only needed for web grabbing images; for local images,use cv2.imread(...)

# Read provided example image
image = cv2.cvtColor(io.imread('https://i.stack.imgur.com/QfUOF.png'),cv2.COLOR_RGB2BGR)

# Mask non-white content
_,mask = cv2.threshold(cv2.cvtColor(image,cv2.COLOR_BGR2GRAY),252,255,cv2.THRESH_BINARY_INV)

# Apply morphological opening with 5x5 rectangular kernel to get rid of the circles
mod = cv2.morphologyEx(mask,cv2.MORPH_OPEN,cv2.getStructuringElement(cv2.MORPH_RECT,(5,5)))

# Obtain mask of parts to be erased from the difference of both masks
erase = mask - mod

# Set corresponding pixels in image to white
image[erase == 255] = (255,255)

cv2.imshow('mask',mask)
cv2.imshow('mod',mod)
cv2.imshow('erase',erase)
cv2.imshow('image',image)
cv2.waitKey(0)
cv2.destroyAllWindows()

非白色内容mask如下所示:

Mask

mod开头后的修改蒙版如下:

Modified mask

两者的区别是要擦除的部分(erase

To be erased

最后,所有被遮罩的像素都设置为白色:

Output

希望有帮助!

,

从左上角开始填充,先填充黑色,然后填充白色,再填充红色:

enter image description here

碰巧,我是通过 ImageMagick 做到的,​​如下所示,但是您可以使用Python包做同样的事情:

magick circles.png \
   -fill black -draw "color 0,0 floodfill" \
   -fill white -draw "color 0,0 floodfill" \
   -fill red   -draw "color 0,0 floodfill" result.png

enter image description here

本文链接:https://www.f2er.com/3166393.html

大家都在问