简单记录一下ubantu18.04初步使用opencv所遇到的问题

1.ubantu18.04安装opencv

参考:Ubuntu 18.04 安装opencv4.2.0_ubuntu18.04安装opencv4.2.0-****博客

2. _src.type() == CV_8UC1 in function 'cv::equalizeHist'

原因:这个错误通常出现在使用cv2.equalizeHist()函数时,输入图像类型不正确。cv2.equalizeHist()函数只能处理8位单通道图像(即CV_8UC1类型)。

解决方法:将输入图像转换为8位单通道图像,可以使用cv2.cvtColor()函数将彩色图像转换为灰度图像,然后使用cv2.equalizeHist()函数进行直方图均衡化。


    Mat infrared_img = imread("infrared.jpg");
    Mat grayInfrared;
    cvtColor(infrared_img, grayInfrared, COLOR_BGR2GRAY);
    Mat infrared_img_1,rgb_img_1;
    equalizeHist(grayInfrared,infrared_img_1);  //直方图均衡

参考:_src.type() == CV_8UC1 in function 'cv::equalizeHist' - ****文库

3.Opencv 解决问题 !_src.empty() in function 'cv::cvtColor' 

!_img.empty() in function 'imwrite'和size.width>0 && size.height>0 in function 'imshow'

得详细检查一下路径有没有问题,文件名有没有错,

参考:https://blog.****.net/hy_z_/article/details/103681088

error: (-215:Assertion failed) !_img.empty() in function ‘cv::imwrite‘已解决_error: (-215:assertion failed) !image.empty() in f-****博客

解决OpenCV error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'cv::imshow'-****博客 

4. The operation is neither 'array op array' (where arrays have the same size and the same number of channels), nor 'array op scalar', nor 'scalar op array' in function 'arithm_op' 

出现这种情况的原因:

第一种:尺寸大小不一样 

解决方法:裁剪图片

参考:【已解决】OpenCV Error: Sizes of input arguments do not match-****博客

opencv图像混合报错问题_the operation is neither 'array op array' (where a-****博客 

第二种:出现原因,可能是读取照片时,选择了不同的读取图像方式 

    string left_file = "./infrared.jpg";
    Mat infrared_img = imread(left_file,0);
    Mat rgb_img = imread("rgb.jpg",1);
    Mat blended_img;
    addWeighted(rgb_img, 0.6, infrared_img, 0.4, 0.0, blended_img);

只要把读取方式改为同一种方式就可以了,熟悉imread函数参考:opencv学习——imread()读取图像-****博客

上一篇:机器学习基础入门(1)


下一篇:QtService实现后台服务linux,windows