01 图像读取与显示
1.显示1张图片
对这个代码进行解释
#include<opencv2\opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv) {
Mat src = imread("D:/WorkSpace/Opencv/images/lena.png");
/*
1.Mat
读进来的图像以矩阵的方式存储
2.imread
读取图像
共2个参数
第1个参数 图片路径
第2个参数 色彩标志
*/
imshow("input", src);
/*
1.imshow
显示图像
共2个参数
第1个参数 窗口名称
第2个参数 输出对象
*/
waitKey(0);
/*
1.waitKey
等待键
共1个参数
第1个参数 等待时间(ms)规定0为永远
*/
destroyAllWindows();
/*
1.destroyAllwindows
销毁所有窗口
无参数
*/
return 0;
}
2.窗口问题
所以会遇到这样的问题:图片超出了物理屏幕,那该怎么办?
记得把imshow的窗口名称对应上
那现在就是一个可调大小的窗口了
3.灰度图像的显示
如果我们想显示一张灰度图片,那该怎么办?
4.其他情况
当png图片有透明通道时,透明通道也是要加载的,怎么办呢?
当图片是浮点数据,或其他数据的类型时,我们需要更多的处理
5.depth为1的解释
所以有的时候,检查深度时src.depth();
这里得到1,也不要诧异
6.判断
#include<opencv2\opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv) {
Mat src = imread("D:/WorkSpace/Opencv/images/lena.png0");
if (src.empty()) {
printf("could not load image……\n");
return -1;
}
namedWindow("输入窗口", WINDOW_FREERATIO);
imshow("输入窗口", src);
waitKey(0);
destroyAllWindows();
return 0;
}
当没有判断时,有错时,就会提示一种断言式空,一般是图片路径的问题
7.本课所用API查阅
1.imread
2.imshow
3.namedWindow
4.waitKey
5.destroyAllWindows