【1】opencv显示图片,转灰度图片,及边缘检测

**

显示图片

**
【1】opencv显示图片,转灰度图片,及边缘检测_第1张图片

#include 
using namespace cv;
int main()
{
	namedWindow("display", WINDOW_AUTOSIZE);
	Mat img;
	img = imread("F://lenna.jfif");
	imshow("display", img);
	waitKey(0);
	return 0;
}

源代码,其中Mat是一种opencv中的数据类型,是一个矩阵可以保存获得图片的RGB值,头文件和我们正常C++的头文件是一样的意思,另外命名空间using namespace cv;加上之后调用文件头的东西不用加cv::是一样的,这和C++中的命名空间也是一样的,nameWindow函数是用来设置展示窗口的大小,第一个关键字是窗口的名字,第二个参数是用来控制窗口大小的,我们这里设置了AUTOSIZE表示自动适应图片的大小。imread函数是用来获取图片信息,参数是图片的绝对路径。imshow是一个展示图片的函数,第一个关键字是窗口的名称,如果一开始已经设置了对应的窗口,它会直接在已经设置好的窗口里面显示图片,如果没有设置,他会重新命名一个相对应的窗口!waitKey函数里面只有一个参数,参数的意义是代表等待键盘读入的时间,此函数也是为了等键盘输入,如果没有这个函数,图片会一闪而过。其余格式和C++的格式也是对应相同的。

对应灰度图片,图片大小压缩,边缘检测

【1】opencv显示图片,转灰度图片,及边缘检测_第2张图片


```cpp
#include 
#include 
using namespace cv;
using namespace std;
int main()
{
	Mat img_rgb, img_gry, img_cny,img_pry;
	namedWindow("gray", WINDOW_AUTOSIZE);
	namedWindow("pry", WINDOW_AUTOSIZE);
	namedWindow("canny", WINDOW_AUTOSIZE);
	img_rgb = imread("F://lenna.jfif");
	cvtColor(img_rgb, img_gry, COLOR_BGR2GRAY);
	imshow("gray", img_gry);
	pyrDown(img_rgb, img_pry);
	imshow("pry", img_pry);
	Canny(img_gry, img_cny, 10, 100, 3, true);
	imshow("canny", img_cny);
	waitKey(0);
	return 0;
}```

前面介绍过的函数我们不再赘述。cvtColor函数是将原来图片转换为灰度图片,三个参数,第一个参数是保存原来图片信息的容器,第二个参数是保存灰度图片的容器,第三个参数是是原来RGB的参数信息。pyrDown函数是把图片变小和变模糊,参数也是一看就明白,另外函数的变化也有一种无脑的高斯卷积的方法,大家可以去查阅相关资料试一试。canny函数可以直接对矩阵进行Canny算子计算得到边缘,显示图片就能得到边缘。

你可能感兴趣的:(从零开始学计算机视觉C++版)