ubuntu 下的opencv3的下载与实现简单功能
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
看自己用户的名字
whoami
例子1
#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
cv::Mat image;
namedWindow("DebugWindow", WINDOW_NORMAL);
resizeWindow("DebugWindow", 640,480);
image = cv::imread("/home/firefly/fan/1234.jpg");
imshow("DebugWindow", image);
waitKey(0);
image.release();
destroyAllWindows();
return 0;
}
namedWindow
原型
void nameWindow(const string& winname,int flags = WINDOW_AUTOSIZE) ;
功能
就是新建一个显示窗口。可以指定窗口的类型。
参数
参数1新建的窗口的名称。自己随便取。
参数2窗口的标识
一般默认为WINDOW_AUTOSIZE 。
WINDOW_AUTOSIZE 窗口大小自动适应图片大小并且不可手动更改。
WINDOW_NORMAL 用户可以改变这个窗口大小
WINDOW_OPENGL 窗口创建的时候会支持OpenGL
resizeWindow()
功能
可任意改变窗口尺寸但实际的窗口尺寸不会超过相机的最大帧尺寸
imread()
原型
imread(const string& filename,int flag);
功能
图像读取的意思image read的缩写
参数
参数一const string& filename 传入参数为文件名字。
支持图片格式
1、windows位图*.bmp*.dib;
2、JPEG文件:*.jpg,*.jpe,*.jpeg;
3、JPEG 2000 文件;
4、PNG 图片*.png;
5、便携文件格式;
6、Sun rasters;
7、TIFF文件;
参数二int flag参入参数
IMREAD_COLOR默认参数读入一副彩色图片忽略alpha通道
IMREAD_GRAYSCALE读入灰度图片
IMREAD_UNCHANGED顾名思义读入完整图片包括alpha通道
也可以写成如下
取值0,将图像转化为灰图;
取值2,原深度图像;
取值4,原颜色图像;
取值1为彩图
一般来说取值<0 Alpha通道加载图像=0为灰图。
imshow()
原型
void imshow(const string& winname, InputArray mat);
功能
用于在指定的窗口显示一幅图
参数
第一个参数
const string&类型的winname填需要显示的窗口标识名称。
第二个参数InputArray类型的mat填需要显示的图像。
规则
1、如果图像数据类型是8U8位无符号则直接显示。
2、 如果图像数据类型是16U16位无符号或32S32位有符号整数则imshow函数内部会自动将每个像素值除以256并显示即将原图像素值的范围由[0~255*256]映射到[0~255]
3、 如果图像数据类型是32F32位浮点数或64F64位浮点数则imshow函数内部会自动将每个像素值乘以255并显示即将原图像素值的范围由[0~1]映射到[0~255]注意原图像素值必须要归一化
waitKey
功能
是等待一个按键按下。
规则
Waitkey在你加载图片时必须使用否则就会一闪而过
当x>0waitkey返回在x时间毫秒内按下的按键的ASCII值否则返回-1
当x=0waitkey表示永久等待直到有键按下例子
waitKey(0); //任意按键按下图片显示结束返回按键键值
waitKey(10); //等待至少10ms图片显示才结束期间按下任意键图片显示结束返回按键键值
destroyAllWindows()
功能
关闭窗口并取消分配任何相关的内存使用。
用法
您可以调用destroyWindow或destroyAllWindows来关闭窗口并取消分配任何相关的内存使用。
对于一个简单的程序实际上不必调用这些函数因为退出时操作系统会自动关闭应用程序的所有资源和窗口
release()
功能
图片释放
例子
image.release(); 把image的图片释放
VideoCapture capture
视频的读操作是通过VideoCapture类来完成的
关于视频的写操作是通过VideoWriter类来实现的。
原型
cv::VideoCapture capture(const string& filename); // 从视频文件读取
cv::VideoCapture capture("lzp.mp4"); // 从视频文件读取