2021.12.4 ubuntu16.04下安装opencv及opencv基础教程

首先更新或者安装一下camke,Ubuntu下默认的是3.5.1,最好更新到3.10以上。不然可能会出现问题,然后安装一下依赖库这种网上找找一大堆基本上都有,我这个不行的话去看看其他的

sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config

然后去官网下载源码,我遇到了浏览器提示下载不安全,不让下载的问题,网上不知道是没有还是我搜的不对,找不到方法,之后自己解决了,最简单的就是复制下载的链接,在Ubuntu终端打入:wget +空格+下载网址就行了,适用大部分链接,不行的话可能是Ubuntu软件更新那里设置不对。
下载解压之后进入解压文件里打开终端执行以下代码:

//创建build并进入,然后cmake一下。
mkdir build
cd build
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
//然后编译
sudo make -j 8
//编译完安装
sudo make install

然后配置环境打开文件:

sudo gedit /etc/ld.so.conf

之后在末尾换行加入:/usr/loacal/lib
再打开bash.bashrc文件配置

sudo gedit /etc/bash.bashrc

末尾换行加入:PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
这里的大部分网上教程有。我只是遇到问题然后写下来希望别人别像我一样一个小问题搞半天,所以安装教程很简单,大部分网上有,就是无法下载的问题提了一下。
然后是最初级的教程,尽量讲的详细点。如果是初学者可以看一下。只涉及显示,保存和截图。
打开opencv的文件夹进入/samples/cpp/example_cmake这个文件,里面有可运行文件的话直接运行,测试一下,应该会显示一个hello opencv。
然后是我根据示例代码和网上别的大佬改的示例。

#include "opencv2/core.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/videoio.hpp"
#include "opencv2/opencv.hpp"
#include 
#include 
using namespace cv;
using namespace std;

void drawText(Mat & image);

int main()
{
//	for(;;)
//	{
/*		VideoCapture inVid('O') ; //打开默认摄像机
		if ( !inVid.isOpened () ) 
		{ //检查错误
			cout << "Error! Camera not ready...\n";
			return -1;
		}
上面是我测试摄像头的,现在我暂时还不会在虚拟机下打开摄像头只是做测试用的
*/
//		Mat是一个类,定义的是图片读取之后的东西,imread函数就是一个读取图片的函数,后面可以加一些命令,设置图片的参数。
		Mat image = imread("jyy.png");
//imshow函数在Ubuntu下显示一下图片,如果不加下面的waitKey函数的话,图片显示就看不出来,设置的是图片显示时间里面的参数是ms,300就是0.3秒。
		imshow("原图",image);
//这个就是截图功能了,定义一个roi用selectROI这个函数赋值,之后再赋值给新定义的Mat类型的im。
		Rect2d roi=selectROI(image);
		Mat im = image(roi);
		imshow("ROI",im);
		waitKey(300);
//这个函数是设定参数的尺寸的,简单的讲就是800是长,600是宽,只改变大小,不改变图片内容。
		resize(image,image,Size(800,600));
//这个是示例代码自带的函数下面有定义
		drawText(image);
//show一下。
		imshow("缩小",image);
//保存文件,如果不加绝对路径默认当前路径,必须要加后缀。
		imwrite("roi.png",im);
		sleep(3);
		imwrite("jyy1.png",image);
//改变颜色灰度,后面大写的是宏,这个的意思是以黑白形式输出,其他的可以去网上找
		cvtColor(image,image,CV_RGB2GRAY);
		imshow("hui",image);
		imwrite("jyyhui.jpg",image);
		waitKey(300);

//	}
}
void drawText(Mat & image)
{
//这个函数调用了putText这个函数,具体是调用是putText(图片,显示的内容,位置,字体和比例,颜色,线厚度和类型);
	putText(image, "Hello OpenCV",
	Point(20, 50),
	FONT_HERSHEY_COMPLEX, 1, // font face and scale
	Scalar(255, 255, 255), // white
	1, LINE_AA); // line thickness and type
}
		                 

没学过cmake的建议去了解一下,和make差不多,想要运行在当前终端输入make就好了。如果没有makefile文件那需要输入cmake .然后再make

你可能感兴趣的:(c++,linux,opencv,ubuntu,c++)