cv :: imread()为OpenCV 4.0.0 Raspberry Pi 3(C ++)生成空图像

时间:2019-02-20 22:34:46

标签: c++ opencv raspberry-pi

我刚刚在Raspberry Pi 3上安装了OpenCV4.0.0。python库似乎可以正常工作,但是我无法使imread()(以及库的其他部分,如FileStorage)适用于C ++。 。

我制作了以下简单程序来演示该问题:

#include <opencv2/opencv.hpp>

using namespace std;

int main() {
    cout << "start" << endl;

    cv::Mat img = cv::imread("~/opencv_test/img.jpg", cv::IMREAD_UNCHANGED);

    cout << img.cols << img.rows << endl;

    cv::imwrite("./imgoutput.jpg", img);

    cout << "written" << endl;
}

输出如下:

  

开始

     

00

     

书面

这表示图像未正确读取,因为输出尺寸为(0,0)。该图像有效并且存在于指定路径中。我已经尝试过.png和.jpg图像,都可以使用python库正确显示。在此示例中也写入了输出图像,但是它是一个空文件(如果cv :: Mat具有0,0尺寸,则可以预期)。

我正在使用:

g++ -std=gnu++11 -I /usr/local/include/opencv4/ test.cpp -o test.o `pkg-config --libs --cflags opencv`

pkg-config的输出如下:

  

-I / usr / local / include / opencv -I / usr / local / include -L / usr / local / lib -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_df -lopencv_dnn lopencv_line_descriptor -lopencv_optflow -lopencv_plot -lopencv_reg -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_rgbd -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_face -lopencv_xfeatures2d -lopencv_shape -lopencv_video -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_flann -lopencv_xobjdetect -lopencv_objdetect -lopencv_ml -lopencv_xphoto -lopencv_highgui - lopencv_videoio -lopencv_imgcodecs -lopencv_photo -lopencv_imgproc -lopencv_core

这似乎包含此示例所需的所有库。

同样,如果我使用python执行相同的任务,则可以正常工作。我为C ++编译不正确吗?

0 个答案:

没有答案