本文目的是通过在Ubuntu18.04系统上编译安装著名的C/C++图像处理开源软件库OpenCV3.4.12,同时练习使用OpenCV对图片和视频进行处理。
一、编译安装OpenCV
1.编译安装源代码
现在目前网上安装OpenCV的帖子中,有一些大多都有一些小错误。在后续的编程中会出现各种各样的问题。笔者这里推荐一个安装教程,目前我看到过的当中最详细而且后续没有错误的。
2.验证安装成功
使用命令
pkg-config opencv --modversion
检验安装是否成功,若安装成功则显示OpenCV的版本号。
二、使用OpenCV对图片进行处理
1.编写程序
- test1.cpp
#include<opencv2/highgui.hpp>
#include<opencv2/opencv.hpp>
using namespace cv;
using namespace std;
//功能:对图片进行特效处理并显示
int main(int argc,char **argv)
{
CvPoint center;
double scale=-3;
IplImage *image=cvLoadImage("dsm.jpg");//注意这里和图片名字一样
argc==2?cvLoadImage(argv[1]):0;
cvShowImage("image",image);
if(!image) return -1;
center=cvPoint(image->width/2,image->height/2);
for (int i = 0;i<image->height;i++)
for (int j = 0;j<image->width;j++) {
double dx = (double)(j - center.x) / center.x;
double dy = (double)(i - center.y) / center.y;
double weight = exp((dx*dx + dy*dy)*scale);
uchar* ptr = &CV_IMAGE_ELEM(image, uchar, i, j * 3);
ptr[0] = cvRound(ptr[0] * weight);
ptr[1] = cvRound(ptr[1] * weight);
ptr[2] = cvRound(ptr[2] * weight);
}
Mat src;
src=cvarrToMat(image);
imwrite("test.png",src);
imshow("test",src);
cvWaitKey();
return 0;
}
2.编译运行程序
1.编译程序
在实际操作过程中,通过命令gcc test1.cpp -o test1 `pkg-config --cfl