我做的是OCR,用的是CTC损失,神经网络输出的结果还需要进一步处理,需要将输出的ncnn::Mat转化为cv::Mat,但是不知道该怎么办。
我使用的方法是:
cv::Mat cv_img = cv::Mat::zeros(rows,cols,opencv_typ);
ncnn_img.to_pixels(cv_img.data,ncnn::Mat::PIXEL_RGB);
@bigbao9494 你怎么这么优秀!!!
cv::Mat 怎么转 ncnn::Mat 呢 @bigbao9494 @nihui
@wangzl2011
cv::Mat bgr;
ncnn::Mat in = ncnn::Mat::from_pixels_resize(bgr.data, ncnn::Mat::PIXEL_BGR, bgr.cols, bgr.rows, 256, 256);
ncnn_img.to_pixels(cv_img.data,ncnn::Mat::PIXEL_RGB);使用这句出来的cv::Mat数据为空,ncnn_img本身的data有值,

@Tomhouxin 一样的
@nihui Opencv的Mat如果不是连续的地址,怎么转化为ncnn的Mat呢
@nihui Opencv的Mat如果不是连续的地址,怎么转化为ncnn的Mat呢
cv::Mat a;
a = a.clone();
有人遇到转完出来结果是空值的吗
有人遇到转完出来结果是空值的吗
请问转完结果为空的问题解决了吗?
参考文档 https://github.com/Tencent/ncnn/wiki/use-ncnn-with-opencv
转换的问题解决了,是由于ncnn::Mat被引用了一次之后,refcount变成了2,所以转出来的结果一直为空。重新定义一个ncnn::Mat,按照文档可成功转换。因此,我想问一下,怎样能让同一个ncnn::Mat多次引用呢?我用同一个ncnn::Mat经过mtcnn检测之后,再进行转换就变空了。
我使用的方法是:
cv::Mat cv_img = cv::Mat::zeros(rows,cols,opencv_typ);
ncnn_img.to_pixels(cv_img.data,ncnn::Mat::PIXEL_RGB);
opencv_typ 的头文件是哪个啊,报错: error: ‘opencv_typ’ was not declared in this scope
Most helpful comment
我使用的方法是:
cv::Mat cv_img = cv::Mat::zeros(rows,cols,opencv_typ);
ncnn_img.to_pixels(cv_img.data,ncnn::Mat::PIXEL_RGB);