Sunday, 22 August 2021

How can I improve color thresholding output?

In the above article they have the following image:

enter image description here

And, they wanted to obtain an output like the following:

enter image description here

I ran the following script:

import cv2

window_name = 'image'

img = cv2.imread("photo.png")

cv2.imshow(window_name, img)
cv2.waitKey(0)


gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
gray = cv2.medianBlur(gray, 5)
edges = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 9, 9)

cv2.imshow(window_name, edges)
cv2.waitKey(0)

color = cv2.bilateralFilter(img, 9, 250, 250)
cartoon = cv2.bitwise_and(color, color, mask=edges)

cv2.imshow(window_name, cartoon)
cv2.waitKey(0)

Firstly, the script is very slow.

Secondly, the output is not what they promised would be:

enter image description here

How can I fix these two issues?



from How can I improve color thresholding output?

No comments:

Post a Comment