opencv系列
一、opencv安装
下载地址:https://opencv.org/releases/ 安装包大小将近200M,下载速度较慢。
配置教程:https://qianmo.blog.csdn.net/article/details/19809337 这篇博客(浅墨)讲解的十分详细,可以参考。
二、opencv图像载入及显示
- 图像载入:
Mat imread(const string& filename, intflags=1 );
Mat img = imread("base.jpg");
enum\\ intflags 参数解释
{
/* 8bit, color or not */
CV_LOAD_IMAGE_UNCHANGED =-1, \\
/* 8bit, gray */
CV_LOAD_IMAGE_GRAYSCALE =0, \\如果取这个标识的话,始终将图像转换成灰度1
/* ?, color */
CV_LOAD_IMAGE_COLOR =1, \\默认,如果取这个标识的话,总是转换图像到彩色一体
/* any depth, ? */
CV_LOAD_IMAGE_ANYDEPTH =2, \\如果取这个标识的话,若载入的图像的深度为16位或者32位,就返回对应深度的图像,否则,就转换为8位图像再返回。
/* ?, any color */
CV_LOAD_IMAGE_ANYCOLOR =4 \\
\\如果想要载入最真实的图像,选择CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR
};
- 图像窗口设置:
void namedWindow(const string& winname,int flags=WINDOW_AUTOSIZE );
namedWindow("a");
WINDOW_NORMAL设置了这个值,用户便可以改变窗口的大小(没有限制)
WINDOW_AUTOSIZE如果设置了这个值,窗口大小会自动调整以适应所显示的图像,并且不能手动改变窗口大小。
WINDOW_OPENGL 如果设置了这个值的话,窗口创建的时候便会支持OpenGL。
-
图像显示:
void imshow(const string& winname, InputArray mat);
imshow("a", img);
waitKey(6000);
destroyWindow()
或者destroyAllWindows()
-
输出图像
bool imwrite(const string& filename,InputArray img, const vector<int>& params=vector<int>() );
imwrite("ab.jpg",image);
第一个参数,const string&类型的filename,填需要写入的文件名就行了,带上后缀,比如,“123.jpg”这样。
第二个参数,InputArray类型的img,一般填一个Mat类型的图像数据就行了。
第三个参数,const vector&类型的params,表示为特定格式保存的参数编码,它有默认值vector(),所以一般情况下不需要填写。而如果要填写的话,有下面这些需要了解的地方:
- 对于JPEG格式的图片,这个参数表示从0到100的图片质量(CV_IMWRITE_JPEG_QUALITY),默认值是95.
- 对于PNG格式的图片,这个参数表示压缩级别(CV_IMWRITE_PNG_COMPRESSION)从0到9。较高的值意味着更小的尺寸和更长的压缩时间,而默认值是3。
- 对于PPM,PGM,或PBM格式的图片,这个参数表示一个二进制格式标志(CV_IMWRITE_PXM_BINARY),取值为0或1,而默认值是1
- 综合示例
待补充