一、主要特性:
OpenCV 是世界上最大的计算机视觉库。它是开源的,包含超过 2500 种算法,由非营利性的开源视觉基金会运营。
- (01)流行的:做计算机视觉绕不开的库,抖音、头条都在用吧,哈哈哈;
- (02)跨平台:Linux、macOS、Windows;
- (03)多语言支持:Python、C++、Android、JavaScript;
二、快速体验:
#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
// 安装: apt install libopencv-dev
// 编译: g++ -I/usr/include/opencv4 demo2_resize.cpp -o demo2_resize \
// -lopencv_core -lopencv_imgproc -lopencv_imgcodecs -lopencv_highgui
// 运行: demo2_resize
int main() {
// 1. 读取图片
string image_path = "images/1.png";
Mat img = imread(image_path, IMREAD_COLOR);
// 2. 显示原图像
imshow("原图", img);
// 3. 对图片进行缩放
int newWidth = 300;
int newHeight = 300;
Mat img2(newWidth, newHeight, CV_32FC3);
resize(img, img2, Size(newWidth, newHeight));
imshow("缩放后", img2);
// 4. 图像转换:写入文件的时候,指定另一个后缀名即可,就是这么简单
imwrite("images/1_cvt.jpg", img);
// 按任意键退出,k为按下的键值,可以根据k进行按下指定键退出
int k = waitKey(0);
return 0;
}
输出效果为:
三、怎么编译安装?
- 需要根据官网[https://opencv.org/get-started/]指引编译安装,如果遇到问题欢迎留言交流。
四、经典应用场景分享
- (01)格式转换:如:png\jpg\png互转、图像缩放等;
- (02)ROI:如:换脸场景;
- (03)位运算:如:快速抠图场景、图像加密场景等;
- (04)数字水印;
- (05)边缘检测;
- (06)人脸检测;
- (07)视频处理:可直接读取摄像头或者视频图像进行处理;
个人认为从事图像处理、计算机视觉的行业必须掌握的库没有之一,建议打算从事这个方向的朋友自行搜索以及去招聘网上做进一步了解。