为什么从OpenCV python样本中读取图像却给出错误,而在c ++中却不给出错误?

问题描述 投票:1回答:1

我正在尝试在opencv python中读取图像

import cv2
import numpy as np

# Read images
image=cv2.imread(cv2.samples.findFile("lena.jpg"))
cv2.imshow("image",image)
cv2.waitKey(0)

并给出以下错误

[ WARN:0] global C:\projects\opencv-python\opencv\modules\core\src\utils\samples.cpp (59) cv::samples::findFile cv::samples::findFile('lena.jpg') => ''
Traceback (most recent call last):
  File "D:/all_libraries/main.py", line 5, in <module>
    image=cv2.imread(cv2.samples.findFile("lena.jpg"))
cv2.error: OpenCV(4.1.1) C:\projects\opencv-python\opencv\modules\core\src\utils\samples.cpp:62: error: (-2:Unspecified error) OpenCV samples: Can't find required data file: lena.jpg in function 'cv::samples::findFile'

其中C ++版本不会给出任何错误


#include <iostream>

#include <opencv2/core.hpp>
#include <opencv2/ml.hpp>
#include <opencv2/highgui.hpp>

using namespace std;
using namespace cv;
using namespace cv::ml;
int main()
{

    Mat image;
    image=imread(samples::findFile("lena.jpg"));
    imshow("lena.jpg",image);
    waitKey(0);

    return 0;
}

我已经在pycharm中安装了OpenCV 4.1.1C ++版本也是4.1.1操作系统Windows

python opencv pycharm sample
1个回答
0
投票

在Python中,findFile函数使用环境变量来定义搜索路径。安装OpenCV时,将创建一个名称类似于C:\ something \ samples \ data的文件夹(我在这里有点猜测是因为我使用Linux而不是Windows)。因此,您需要将环境变量OPENCV_SAMPLES_DATA_PATH设置为值C:\ something \ samples \ data,然后尝试运行代码。

https://docs.opencv.org/3.4/d6/dba/group__core__utils__samples.html上有一些相关文档(但还不够有用)

© www.soinside.com 2019 - 2024. All rights reserved.