Может кто-нибудь объяснить, почему моя функция заливки не работает в Python OpenCV2 - PullRequest
0 голосов
/ 08 ноября 2019

enter image description here

Я пытаюсь залить заливку черной прямоугольной границы и самой внутренней закрашенной черной окружности на этом изображении белым цветом.

Я гуглил и обнаружил, что в python есть cv2.floodFill (). Согласно документации, для этого требуется следующий параметр:

 cv2.floodFill(image, mask, seedPoint, newVal[, loDiff[, upDiff[, flags]]])

Здесь изображение - это входное изображение, которое я хочу отредактировать. Мое изображение называется testpoint.png

Для начальной точки я выбираю (0,0), чтобы сначала заполнить внешнее черное кольцо.

Поскольку я хочу залить заливку черной внешней прямоугольной границы белым цветом, я выбрал значение для newVal (255,255,255)

Я установил значение lodiff и updiff на 20 и flags = 4 (за 4 подключенных пикселя заливаю).

Для параметра маски я установил его равным none

cv2.floodFill(test_image,None,(0,0), (255, 255 ,255), 20, 20, 4)

Эта доза, однако, не работает. Что я делаю не так?

1 Ответ

0 голосов
/ 08 ноября 2019

Попробуйте этот код заливки:

import cv2
import numpy as np
img = cv2.imread('/home/stephen/Desktop/uLUC6.png')
# Flood from (0,0) - gray
floodfill_color = 123,123,123
seed_point = 0,0
cv2.floodFill(img, None, seed_point, floodfill_color)
cv2.imshow('img', img)
cv2.waitKey()
cv2.destroyAllWindows()

Вам не нужно включать другие параметры. output

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...