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.
