yolov5-seg-opencv-onnxruntime-cpp icon indicating copy to clipboard operation
yolov5-seg-opencv-onnxruntime-cpp copied to clipboard

mask =mask(temp_rect -Point(left, top)) > mask_threshold;请问这句话是什么意思?我总是在这里报错

Open yeying256 opened this issue 1 year ago • 8 comments

yeying256 avatar Dec 13 '23 03:12 yeying256

这里是通过阈值分割出来mask的前景和背景,也就是分值大于mask_threshold的就是最终要的目标mask。 至于前面括号的内容,那个是计算mask偏移之类的参数,你目前的写法就旧版本的,有些数据没处理好会报错,你可以更新下这个函数试试看 https://github.com/UNeedCryDear/yolov5-seg-opencv-onnxruntime-cpp/blob/67c0dfe46703ffe0bb8657829f8c0a05a5a549bb/yolov5_utils.cpp#L174

UNeedCryDear avatar Dec 13 '23 05:12 UNeedCryDear

非常感谢您。

yeying256 avatar Dec 21 '23 07:12 yeying256

您好,我是一名在读学生,请问能加个联系方式嘛?我有很多细节性的问题想问一问。

yeying256 avatar Dec 21 '23 07:12 yeying256

关于这行代码还有一个问题,就是那个大于号是怎么运行的?我看了之后非常疑惑

yeying256 avatar Dec 21 '23 07:12 yeying256

大于号就是判断值是否大于阈值的啊,类似 bool a=10>0.5;这种语句,在Mat满足大于阈值的像素点结果就是true,不满足就是false。而在opencv中,Mat重载了这些符号,最终出来一张0或者255的mask图片。

UNeedCryDear avatar Dec 21 '23 09:12 UNeedCryDear

好的谢谢,还有一个问题 LetterBox(const cv::Mat& image, cv::Mat& outImage, cv::Vec4d& params, const cv::Size& newShape, bool autoShape, bool scaleFill, bool scaleUp, int stride, const cv::Scalar& color) 这个函数中的这个cv::Vec4d& params 我大概能看懂他是什么意思,但是不是很明白为什么要这样做。这几个参数在后面的作用我还是有点疑惑。 cv::Rect roi(int(params[2] / net_width * seg_width), int(params[3] / net_height * seg_height), int(seg_width - params[2] / 2), int(seg_height - params[3] / 2)); dest = dest(roi);

yeying256 avatar Dec 22 '23 15:12 yeying256

这个参数是原图的xy的scale和padding参数,通过这个参数计算原图中对应的proto_mask的区域

UNeedCryDear avatar Dec 25 '23 01:12 UNeedCryDear

这个参数是原图的xy的scalar和padding参数,通过这个参数计算原图中对应的proto_mask的区域

谢谢您,我都解决了

yeying256 avatar Jan 02 '24 07:01 yeying256