标签: opencv4

如何修复manjaro中安装的opencv4的“致命错误:opencv2/core.hpp:没有这样的文件或目录”

本质上,我已经能够很好地为 python 安装 openCV,但我也希望能够为 C++ 做到这一点。我能够使用我的 linux 发行版的包管理器(基于 arch 的 manjaro 的 pacman)安装它,但我还没有使用以下程序来测试 openCV

#include <iostream>
#include <opencv2/core.hpp>

int main() {
   std::cout << "OpenCV version: " << CV_VERSION << std::endl;
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

我在尝试编译这个程序时遇到的错误如下:

cv.cpp:2:10: fatal error: opencv2/core.hpp: No such file or directory
    2 | #include <opencv2/core.hpp>
      |          ^~~~~~~~~~~~~~~~~~
 compilation terminated.
Run Code Online (Sandbox Code Playgroud)

显然,这是一个常见的错误,但是我尝试了很多解决方案,但它们似乎都不起作用。我知道 core.hpp 在哪里,它实际上在 /usr/local/include/opencv4/opencv2/core.hpp。但是,当我将 include 语句更改为

 #include opencv4/opencv2/core.hpp
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

 In file included from cv.cpp:2:
 /usr/include/opencv4/opencv2/core.hpp:52:10: fatal error: opencv2/core                /cvdef.h: No such file or directory
   52 | #include "opencv2/core/cvdef.h"
      | …
Run Code Online (Sandbox Code Playgroud)

c++ header-files include-path manjaro opencv4

10
推荐指数
2
解决办法
2万
查看次数

'OpenCvSharp.NativeMethods' 抛出异常。无法加载共享库“OpenCvSharpExtern”或其依赖项之一。,Ubuntu 18.04

在 Windows 环境中运行此应用程序时,我在我的 .net core 3.0 应用程序中使用了 OpenCvSharp 库,该应用程序运行没有任何问题。当在 ubuntu 18.04 中运行的 docker 中部署和托管相同的应用程序时,会发生以下异常:

System.DllNotFoundException: Unable to load shared library 'OpenCvSharpExtern' or one of its dependencies.
Run Code Online (Sandbox Code Playgroud)

我已经安装了在 ubuntu 环境中运行 OpenCvSharp4 所需的以下软件包 (nuget):

  • OpenCvSharp4
  • OpenCvSharp4.runtime.ubuntu.18.04-x64

使用以下命令检查 libOpenCvSharpExtern.so 库的依赖项时:

ldd libOpenCvSharpExtern.so
Run Code Online (Sandbox Code Playgroud)

缺少某些依赖项程序集,因此我安装了以下 GitHub 线程中提到的所有必需包,这些包报告了相同的确切问题:

https://github.com/shimat/opencvsharp/issues/889

但是仍然发现缺少一些依赖项,这些程序集名称如下:

  • libavcodec.so.57 => 未找到
  • libavformat.so.57 => 未找到
  • libavutil.so.55 => 未找到
  • libswscale.so.4 => 未找到
  • libjpeg.so.8 => 未找到

我还尝试安装以下软件包“libjpeg62-turbo-dev”和“libavcodec-extra57”来修复“未找到”程序集。但是问题还是出现了。

任何有关如何解决此问题的建议将不胜感激。

docker google-kubernetes-engine ubuntu-18.04 opencv4 asp.net-core-3.0

10
推荐指数
1
解决办法
1019
查看次数

使用make install在Raspbian Raspberry Pi 3+中安装OpenCV 4时编译错误

`您好,我已经在Raspberry上安装了OpenCV两次。但是,由于一切都在不断发展(操作系统,库等)。这次我收到以下错误:

-- Installing: /usr/local/lib/python2.7/dist-packages/cv2/python-2.7/cv2.so
CMake Error at modules/python2/cmake_install.cmake:61 (file):
  file RPATH_CHANGE could not write new RPATH:

    /usr/local/lib

  to the file:

    /usr/local/lib/python2.7/dist-packages/cv2/python-2.7/cv2.so

  No valid ELF RPATH or RUNPATH entry exists in the file; Error reading ELF
  identification.
Call Stack (most recent call first):
  modules/cmake_install.cmake:162 (include)
  cmake_install.cmake:95 (include)


Makefile:83: recipe for target 'install' failed
make: *** [install] Error 1
Run Code Online (Sandbox Code Playgroud)

我尝试了以下脚本:

    sudo apt-get upgrade
    sudo apt-get install -y build-essential cmake pkg-config
    sudo apt-get install -y libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
    sudo apt-get install -y …
Run Code Online (Sandbox Code Playgroud)

cmake python-3.x raspbian raspberry-pi3 opencv4

8
推荐指数
1
解决办法
518
查看次数

将 GPU 与 opencv-python 结合使用

我正在尝试在 Windows 10 上使用带有 GPU 的 opencv-python。

我使用 pip 安装了 opencv-contrib-python,它是 v4.4.0.42,我的计算机和路径中也有 Cuda。

无论如何,这是我正在尝试编译的(简单)代码:

import cvlib as cv
from cvlib.object_detection import draw_bbox

bbox, label, conf = cv.detect_common_objects(img,confidence=0.5,model='yolov3-worker',enable_gpu=True)

output_image = draw_bbox(img, bbox, label, conf)
Run Code Online (Sandbox Code Playgroud)

首先,这是告诉我 tf 可以与 cuda 一起使用的行:

2020-08-26 5:51:55.718555: I tensorflow/stream_executor/platform/default/dso_loader.cc:48] Successfully opened dynamic library cudart64_101.dll
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用 GPU 分析图像时,会发生以下情况:

[ WARN:0] global C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-j8nxabm_\opencv\modules\dnn\src\dnn.cpp (1429) cv::dnn::dnn4_v20200609::Net::Impl::setUpNet DNN module was not built with CUDA backend; switching to CPU
Run Code Online (Sandbox Code Playgroud)

有没有办法在不使用 cmake 安装 opencv 的情况下解决这个问题?窗户上乱七八糟...

python opencv python-3.x tensorflow opencv4

8
推荐指数
3
解决办法
1万
查看次数

列出可用的相机 OpenCV/Python

我的 PC 上连接了多个网络摄像头,我想根据其信息(名称、分辨率等)选择一台摄像头。有没有办法列出 PC 上可用的所有摄像机,而不是尝试 cv2.VideoCapture() 中的所有索引?

python opencv python-3.7 opencv4

7
推荐指数
2
解决办法
9316
查看次数

OpenCV4 错误:'CV_CAP_PROP_FRAME_WIDTH' 未在此范围内声明

我最近在我的 Ubuntu 18.04 LTS 上从 OpenCV3.3 迁移到了最新版本的 OpenCV4。我在安装过程中遇到了一些持续的问题。当我按照安装教程进行安装时,我的安装没有出现任何错误。但是每当我opencv2/highgui.hpp在我的项目中包含该模块时,我都会遇到如下问题。当我点击链接时,这似乎是由 highgui.hpp 引起的问题。

/home/arun/Documents/AutonomousLaneDetection/app/main.cpp: In function ‘int main(int, char**)’:
/home/arun/Documents/AutonomousLaneDetection/app/main.cpp:118:36: error: ‘CV_CAP_PROP_FRAME_WIDTH’ was not declared in this scope
 int videoWidth = videofile.get(CV_CAP_PROP_FRAME_WIDTH);
                                ^~~~~~~~~~~~~~~~~~~~~~~
/home/arun/Documents/AutonomousLaneDetection/app/main.cpp:119:37: error: ‘CV_CAP_PROP_FRAME_HEIGHT’ was not declared in this scope
 int videoHeight = videofile.get(CV_CAP_PROP_FRAME_HEIGHT);
                                 ^~~~~~~~~~~~~~~~~~~~~~~~
/home/arun/Documents/AutonomousLaneDetection/app/main.cpp:123:27: error: ‘CV_FOURCC’ was not declared in this scope
                       CV_FOURCC('M', 'J', 'P', 'G'), 10,
                       ^~~~~~~~~
/home/arun/Documents/AutonomousLaneDetection/app/main.cpp:123:27: note: suggested alternative: ‘CV_BLUR’
                       CV_FOURCC('M', 'J', 'P', 'G'), 10,
                       ^~~~~~~~~
                       CV_BLUR
Run Code Online (Sandbox Code Playgroud)

opencv highgui opencv4

6
推荐指数
1
解决办法
1万
查看次数

致命错误:opencv2/opencv_modules.hpp:没有那个文件或目录#include "opencv2/opencv_modules.hpp"

大家好,我正在尝试使用我从源代码构建的 opencv-c++ API(版本 4.4.0)。它安装在 /usr/local/ 中,我只是尝试使用以下代码加载和显示图像 -

#include <iostream>
#include <opencv4/opencv2/opencv.hpp>
#include <opencv4/opencv2/core.hpp>
#include <opencv4/opencv2/imgcodecs.hpp>
#include <opencv4/opencv2/highgui.hpp>
#include <opencv4/opencv2/core/cuda.hpp>

using namespace cv;

int main()
{
    std::string image_path = "13.jpg";
    cv::Mat img = cv::imreadmulti(image_path, IMREAD_COLOR);
    if(img.empty())
    {
        std::cout<<"COULD NOT READ IMAGE"<<std::endl;
        return 1;
    }
    imshow("Display Window", img);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我编译时,它会在编译过程中引发以下错误 -

In file included from /CLionProjects/opencvTest/main.cpp:2:
/usr/local/include/opencv4/opencv2/opencv.hpp:48:10: fatal error: opencv2/opencv_modules.hpp: No such file or directory
 #include "opencv2/opencv_modules.hpp"
Run Code Online (Sandbox Code Playgroud)

我的 Cmake 如下 -

cmake_minimum_required(VERSION 3.15)
project(opencvTest)

set(CMAKE_CXX_STANDARD 17)
include_directories("/usr/local/include/opencv4/opencv2/")
add_executable(opencvTest main.cpp)
target_link_libraries(opencvTest …
Run Code Online (Sandbox Code Playgroud)

c++ opencv opencv4

6
推荐指数
1
解决办法
2万
查看次数

如何在 Android Studio 中导入 OpenCV 4.5

这个问题仍然偶尔会得到新的赞成票这一事实让我觉得我不是这种情况下唯一的人,所以我决定写一个对我有用的逐步解释,希望其他人可能会发现它在未来很有用。一切都基于此视频,但我认为最好在此处编写适当的指南,以防它被删除。

如果您正在寻求 OpenCV 3.4 的帮助,就是我在尝试 4.5 版之前所关注的。

android opencv android-studio opencv4

6
推荐指数
1
解决办法
1344
查看次数

使用OpenCV4将鱼眼图像转换为等角矩形图像的C ++算法

我想用OpenCV4库创建C ++代码,该代码将鱼眼图像转换为等矩形图像。我正在使用从我的计算机上的文件加载的1400 * 1400像素的鱼眼图像作为测试:

鱼眼镜头

构建工作良好,但是当我尝试执行代码时,我得到了

细分错误:11

错误。我正在使用Xcode在MacOSX上工作,并且使用终端“ ITerm2”来构建和执行我的代码。

我使用此博客上描述的方法在等角矩形图像中查找鱼眼图像的相应点:http ://www.kscottz.com/dewarped-panoramic-images-from-a-raspberrypi-camera-module/

该方法可以这样描述:

图片

谢谢你的帮助。

#include <opencv2/opencv.hpp>
#include <iostream>
#include <vector>
#include <string.h>

using namespace cv;
using namespace std;

const string PATH_IMAGE = "/Users/Kenza/Desktop/Xcode_cpp_opencv/Projection/Projection/Images/img1.jpg";
const double PI = 3.141592653589793;
const int ESC = 27;

int main() {

    cout << "********** READ AND DISPLAY THE FISHEYE (=INPUT) IMAGE **********" << endl;
    Mat fisheyeImage;

    fisheyeImage = imread(PATH_IMAGE, IMREAD_COLOR);
    namedWindow("Fisheye Image", WINDOW_AUTOSIZE);
    imshow("Fisheye Image", fisheyeImage);

    while (waitKey(0) != ESC) {
        //wait until the key …
Run Code Online (Sandbox Code Playgroud)

c++ fisheye remap opencv4

5
推荐指数
1
解决办法
251
查看次数

AttributeError: 模块 'cv2.cv2' 在 OpenCV 中没有属性 'freetype'

我正在使用安装了最少软件包的 docker 容器。我安装了opencv-contrib-pythonusingpip3 install opencv-contrib-python并安装了最新版本,4.1.025并已验证它正在运行并且我的程序可以正常运行。但是,现在我需要该freetype模块,但是当我尝试时:

import cv2 as cv
ft = cv.freetype.createFreeType2()
Run Code Online (Sandbox Code Playgroud)

它抛出AttributeError标题中的as 。我尝试重新安装不同的版本,即:4.0.0.21, 4.0.1.23, 4.0.1.24, 4.1.0.25无济于事。我主要使用无头版本(因为我使用的是 docker 并且我不需要任何 gui 功能)。我发现的另一件事是,并非我尝试过的所有模块都可以导入(ccalib、tracking、sfm、xobjdetect 等),并且这些模块会引发相同的错误。这是否意味着某些模块无法通过pip3安装获得?谢谢你。

python freetype2 ubuntu-18.04 opencv4

5
推荐指数
1
解决办法
982
查看次数

在openCV中特定坐标处的另一张图像上显示图像

我正在尝试在特定坐标处的另一张图像上显示图像。我已经使用网络摄像头检测到了 aruco 标记,我想在 aruco 标记上显示另一个图像。可以移动 aruco 标记,并且叠加图像应与标记一起移动。

有各种绘图功能并将文本输入到图像中。我尝试过图像叠加和图像单应性。

我可以获得角落的坐标。是否有任何功能可以在这些坐标处插入图像?

import cv2
import cv2.aruco as aruco
import glob

markerLength = 0.25

cap = cv2.VideoCapture(0)

criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001)

objp = np.zeros((6*7,3), np.float32)
objp[:,:2] = np.mgrid[0:7,0:6].T.reshape(-1,2)

objpoints = [] 
imgpoints = []

images = glob.glob('calib_images/*.jpg')

for fname in images:
    img = cv2.imread(fname)
    gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

    ret, corners = cv2.findChessboardCorners(gray, (7,6),None)

    if ret == True:
        objpoints.append(objp)

        corners2 = cv2.cornerSubPix(gray,corners,(11,11),(-1,-1),criteria)
        imgpoints.append(corners2)
        img = cv2.drawChessboardCorners(img, (7,6), corners2,ret)


ret, mtx, dist, rvecs, tvecs …
Run Code Online (Sandbox Code Playgroud)

opencv image-processing python-3.x aruco opencv4

3
推荐指数
2
解决办法
5887
查看次数

在 OpenCV C++ 中创建空白图像

我正在尝试使用 OpenCV 创建一个空白图像(稍后将被填充),但它必须与作为新图像的预定义图像具有相同的大小。我尝试了以下代码:

(图片为显示成功的lena图片)

    Mat lena1(Size(image.cols,image.rows),CV_8UC1);
    namedWindow( "Display Image", CV_WINDOW_AUTOSIZE );
    //imshow( "Display Image", image );
    imshow("blank", lena1);
Run Code Online (Sandbox Code Playgroud)

但出于某种原因,它仍然显示“图像”而不是 lena1(那将是与预定义图像大小相同的空白图像)。

谢谢!

c++ opencv image opencv4

0
推荐指数
1
解决办法
5171
查看次数