Почему OpenCV открывает только одно окно с необработанным изображением в Ros? - PullRequest
0 голосов
/ 15 марта 2020

Поэтому я пытаюсь преобразовать видеопоток веб-камеры с openCV внутри ROS в формат HSV и хотел бы наложить на него маску обнаружения цвета. Это мой код:

class image_converter():

    def __init__(self):


        self.bridge = CvBridge()
        self.image_sub = rospy.Subscriber("/usb_cam/image_raw", Image, self.callback)



    def callback(self, ros_image):
        print("get an image")

        self.cv_image = self.bridge.imgmsg_to_cv2(ros_image, "bgr8")

        cv2.imshow("Image_window", self.cv_image)

        cv2.waitKey(3)
        return self.cv_image


    def toHSV(self, cv_image):
        print("HSV")
        self.hsv = cv2.cvtColor(cv_image, cv2.COLOR_BGR2HSV)
        cv2.imshow("HSV window", self.hsv)
        cv2.waitKey(3)
        return self.hsv

    def mask(self, hsv):
        print("mask")
        yellowlower = (30, 150, 100)
        yellowupper = (60, 255, 255)

        self.mask = cv2.inRange(self.hsv, yellowlower, yellowupper)
        cv2.imshow("Green", mask)
        cv2.waitKey(3)
        return mask




def main(args):


    rospy.init_node("image_converter", anonymous=True)

    try:
        image_converter()
        rospy.spin()
    except KeyboardInterrupt:
        print("Shutting down")
    cv2.waitKey(3)
    cv2.destroyAllWindows()

if __name__ == "__main__":
    main(sys.argv)

Когда я запускаю код, открывается только одно окно с необработанным изображением, но это все. Два других windows с изображением HSV и маской не открываются. Поскольку я довольно новичок во всем python, решение может быть очень простым, но я не могу его найти.

Заранее спасибо!

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