欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【碎片知识(1)· 计算机视觉基础】利用OpenCV实现图像的“Hello, world!”

程序员文章站 2023-12-27 08:27:57
...

系统:Windows 10

平台:Visual Studio 2017

工具:OpenCV 3.0

说明:虽然只是图像学习中最初级的一个小程序,除了mark一下小小的成就感之外,这个小程序中也有一些初学者很容易犯的错误。第一次运行需要加载符号选项,时间可能长一些,之后再运行就快了。另,总用Lena不好吧,都说“要有自己的风格”,我觉得TEDDY BEAR就不错~~~

【碎片知识(1)· 计算机视觉基础】利用OpenCV实现图像的“Hello, world!”

言归正传,因为本程序同时将使用其他函数,并对比其效果,所以还是回来找我们的Lena小姐姐吧←_←

/* ********************************************************************************************
        任务目标:
	       1. 利用OpenCV显示图像。
	       2. 利用OpenCV中的resize、GaussianBlur、cvtColor和threshold函数
		  实现缩放、平滑、颜色空间转换和阈值变化功能。
********************************************************************************************* */

#include <OpenCV2/opencv.hpp>

using namespace cv;

int main(void)
{
	char *fn = "E:\\Study\\Computer vision\\OpenCV Test Workshop\\CV002\\lena.jpg";

	Mat image, image2, image3, image4, image5;

	image = imread(fn);

	resize(image, image2, Size(image.cols / 2, image.rows / 2));  // 图像改变大小(resize函数)

	GaussianBlur(image, image3, Size(9, 9), 0);  // 高斯平滑(GaussianBlur函数)

	cvtColor(image, image4, COLOR_BGR2GRAY, 0);  // 颜色空间转换(cvtColor函数)

	threshold(image, image5, 50, 255, THRESH_BINARY); // 阈值变化(threshold函数)

	imshow("Hello, world!", image);  // 原图像
	imshow("resize", image2);  // resize后的图像
	imshow("GaussianBlur", image3);  // GaussianBlur后的图像
	imshow("cvtColor", image4);  //cvtColor后的图像
	imshow("threshold", image5);  //threshold后的图像
	waitKey(0);
}

1.“using namespace cv”的作用:相当于提前声明使用命名空间cv,这样在调用相关资源时就不需要再加上cv。(如:Mat,否则用cv::Mat。)

2.“waitKey”的作用:使程序暂停,不会执行完直接闪退。

3.  在路径输入中,初学者可能会直接将地址复制过来,但是注意不是“\”,而是“\\”。

4.  解决方案平台应根据自己的系统进行调整,否则会报错,在这里选用的是“x64”平台。

5.  对于出现“无法查找和打开PDB文件”的情况,大体有两种可能性:

     (1)未启动源服务器支持,应对方法如下:

              工具 >> 属性 >> 调试 >> 常规,在右侧的选项列表里选中“启动源服务器支持”,忽略系统警告提示。(毕竟MS的东西,习惯就好。)

     (2)还有一种可能性就是除了这个在运行的项目,另一个项目也利用了同一个目标文件,导致imread无法对目标文件进行操作,此时要关闭其他运行项目以解除占用。

 6.  image.cols/2image.rows/2代表把原始图像的列数和高度除2。


【碎片知识(1)· 计算机视觉基础】利用OpenCV实现图像的“Hello, world!”

【碎片知识(1)· 计算机视觉基础】利用OpenCV实现图像的“Hello, world!”

【碎片知识(1)· 计算机视觉基础】利用OpenCV实现图像的“Hello, world!”

【碎片知识(1)· 计算机视觉基础】利用OpenCV实现图像的“Hello, world!”

【碎片知识(1)· 计算机视觉基础】利用OpenCV实现图像的“Hello, world!”


相关标签: OpenCV

上一篇:

下一篇: