图像编码接受度在运行时发生变化

时间:2019-05-17 10:03:09

标签: opencv encoding deep-learning ros

我有一台照相机,可将数据馈送到深度学习模型。该模型评估图像并返回找到的对象。该程序可以正常运行一段时间,然后关闭。

open

我研究了将mono8转换为所需的CV_8UC1的编码和可能性的差异。结论似乎是它们大致相同。

           mask_rcnn: Traceback (most recent call last):
           mask_rcnn:   File "/home/riwo-rack-pc/GIT/automatic-planthandling/Ros/catkin_ws/src/image_processing/mask_rcnn_ros/nodes/mask_rcnn_node", line 227, in <module>
           mask_rcnn:     main()
           mask_rcnn:   File "/home/riwo-rack-pc/GIT/automatic-planthandling/Ros/catkin_ws/src/image_processing/mask_rcnn_ros/nodes/mask_rcnn_node", line 224, in main
           mask_rcnn:     node.run()
           mask_rcnn:   File "/home/riwo-rack-pc/GIT/automatic-planthandling/Ros/catkin_ws/src/image_processing/mask_rcnn_ros/nodes/mask_rcnn_node", line 114, in run
           mask_rcnn:     self._mask_pub.publish(self.center_mask(result))
           mask_rcnn:   File "/home/riwo-rack-pc/GIT/automatic-planthandling/Ros/catkin_ws/src/image_processing/mask_rcnn_ros/nodes/mask_rcnn_node", line 133, in center_mask
           mask_rcnn:     im, contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
           mask_rcnn: cv2.error: /tmp/binarydeb/ros-kinetic-opencv3-3.3.1/modules/imgproc/src/contours.cpp:199: error: (-210) [Start]FindContours supports only CV_8UC1 images when mode != CV_RETR_FLOODFILL otherwise supports CV_32SC1 images only in function cvStartFindContours_Impl

我希望代码能够一直运行,直到我停止它为止,而且我希望我正在评估的消息的编码在没有明显原因的情况下不会更改。

是否存在可以转换该函数的函数,或者可以在将编码传递给findContours函数之前对其进行检查?

1 个答案:

答案 0 :(得分:0)

这不是由图像编码引起的问题。当模型在图像中找到多个遮罩时,阈值将变为findContours函数无法处理的阈值。