Jan-31-2020, 06:16 AM
Hi. I am trying to save as png file the mask generated by python when I run the object detection with HSV Color Space in opencv. I used cv2.imwriting function but it doesn't work. Is there another alternative to do this? I want to save the mask as I want later on to do pixel count on it based on colour. This is the code:
import cv2
import numpy as np
def nothing(x):
pass
cv2.namedWindow("Tracking")
cv2.createTrackbar("LH", "Tracking", 0, 360, nothing)
cv2.createTrackbar("LS", "Tracking", 0, 1, nothing)
cv2.createTrackbar("LV", "Tracking", 40, 40, nothing)
cv2.createTrackbar("UH", "Tracking", 360, 360, nothing)
cv2.createTrackbar("US", "Tracking", 0, 10, nothing)
cv2.createTrackbar("UV", "Tracking", 110, 110, nothing)
while True:
frame = cv2.imread('cells.png')
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
l_h = cv2.getTrackbarPos("LH", "Tracking")
l_s = cv2.getTrackbarPos("LS", "Tracking")
l_v = cv2.getTrackbarPos("LV", "Tracking")
u_h = cv2.getTrackbarPos("UH", "Tracking")
u_s = cv2.getTrackbarPos("US", "Tracking")
u_v = cv2.getTrackbarPos("UV", "Tracking")
l_b = np.array([l_h, l_s, l_v])
u_b = np.array([u_h, u_s, u_v])
mask = cv2.inRange(hsv, l_b, u_b)
res = cv2.bitwise_and(frame, frame, mask=mask)
cv2.imshow("frame", frame)
cv2.imshow("mask", mask)
cv2.imshow("res", res)
#cv2.imwrite(filename, mask1)
key = cv2.waitKey(1)
if key == 27:
break
cv2.destroyAllWindows()Thanks.
