下面是Ubuntu18.04安装opencv 3.2.0的解决方法攻略:
一、安装依赖项
首先,要安装一些基本依赖项。在终端中执行以下命令:
sudo apt-get update
sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
二、安装openCV
1. 下载源码
我们需要下载openCV 3.2.0的源码。可以在openCV官网下载,或者使用以下命令在终端中下载:
wget https://github.com/opencv/opencv/archive/3.2.0.zip
2. 解压源码并进入目录
解压下载的源码,并进入opencv-3.2.0目录:
unzip 3.2.0.zip
cd opencv-3.2.0/
3. 编译
执行以下命令开始编译:
mkdir build
cd build/
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j4
sudo make install
其中:
-D CMAKE_BUILD_TYPE=RELEASE
表示以发布模式编译openCV。-D CMAKE_INSTALL_PREFIX=/usr/local
表示将openCV的安装路径设置为/usr/local
。
三、测试
为了验证openCV安装成功,我们可以尝试运行一个简单的测试程序。
1. 创建测试文件
使用以下命令在当前目录下创建一个名为test.cpp
的文件:
nano test.cpp
在文件中粘贴以下内容:
#include <opencv2/opencv.hpp>
#include <iostream>
int main(int argc, char** argv)
{
cv::Mat image = cv::imread("test.jpg", CV_LOAD_IMAGE_COLOR);
if(!image.data)
{
std::cout << "Could not open or find the image" << std::endl ;
return -1;
}
cv::namedWindow("Display window", cv::WINDOW_AUTOSIZE );
cv::imshow("Display window", image);
cv::waitKey(0);
return 0;
}
其中test.jpg
是需要打开的图片文件名。
2. 编译测试程序
使用以下命令编译测试程序:
g++ -o test test.cpp `pkg-config opencv --cflags --libs`
3. 运行测试程序
使用以下命令运行测试程序:
./test
如果成功打开了图片,则说明openCV已经安装成功了。
示例1:使用openCV进行人脸检测
下面是一个简单的示例,演示如何使用openCV进行人脸检测。这个示例的前提是你已经安装好openCV。
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
int main(int argc, const char* argv[])
{
if(argc != 2) {
cerr << "Usage: " << argv[0] << " <Image_Path>" << endl;
return -1;
}
// Load the cascade
cv::CascadeClassifier cascade;
cascade.load("haarcascade_frontalface_default.xml");
// Load image
cv::Mat image = cv::imread(argv[1]);
// Detect faces
vector<cv::Rect> faces;
cascade.detectMultiScale(image, faces, 1.1, 2, 0|CV_HAAR_SCALE_IMAGE, cv::Size(30, 30));
// Draw rectangle around faces
for(int i = 0; i < faces.size(); i++) {
cv::Point topLeft(faces[i].x, faces[i].y);
cv::Point bottomRight(faces[i].x + faces[i].width, faces[i].y + faces[i].height);
cv::rectangle(image, topLeft, bottomRight, cv::Scalar(255, 255, 255), 2, 8, 0);
}
// Display result
cv::imshow("result", image);
cv::waitKey(0);
return 0;
}
说明:
- 该示例可通过命令行创建一个图片文件,然后读入该图片文件进行人脸检测,并在图片中画出人脸矩形框。
示例2:使用openCV进行图像识别
下面是一个简单的示例,演示如何使用openCV进行基本图像识别。这个示例的前提是你已经安装好openCV。
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
int main()
{
// Load image
cv::Mat frame = cv::imread("test.jpg");
// Convert image to grayscale
cv::Mat gray;
cv::cvtColor(frame, gray, cv::COLOR_BGR2GRAY);
// Load the trained data-file
cv::CascadeClassifier faceCascade;
faceCascade.load("haarcascade_frontalface_default.xml");
// Detect faces
std::vector<cv::Rect> faces;
faceCascade.detectMultiScale(gray, faces, 1.2, 3);
// Draw rectangles around faces
for(int i = 0; i < faces.size(); i++) {
cv::rectangle(frame, faces[i], cv::Scalar(0, 255, 0), 4);
}
// Display result
cv::imshow("result", frame);
cv::waitKey(0);
return 0;
}
说明:
- 该示例可通过读入一个图片文件进行基本图像识别,并在图片中画出识别出来的目标矩形框。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Ubuntu18.04安装opencv 3.2.0的解决方法 - Python技术站