笔记:OpenCV4.5.4 【c++】图像读取与显示

本文介绍了使用OpenCV进行图片处理的基本步骤,包括如何正确读取图片路径、展示图片及设置展示时间等内容,并提供了示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题一:无法读取头文件,链接器连接错了,应该是opencv_world454d.lib

问题二:图片无法显示。第一个原因是直接复制了地址,D:\opencv\2,正确的是D:/opencv/2

第二个原因是没有写图片名称和图片类型,所以最后正确的是D:/opencv/2/a.jpg

 问题三:图片一闪而过。原因在于waitKey();

          如果写为waitKey(10);     代表的意思是图片显示10毫秒,然后继续执行下面的语句。

          如果写为waitKey(0);       代表程序执行到这句话停止。

代码:

#include<opencv2/opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
	Mat src = imread("D:/opencv/2/a.jpg");  //把图像保存到src里
	imshow("input", src);     //imshow 将图片读取出来,“input”为窗口名称
	waitKey(0);
	return 0;
}

笔记:

1.imread功能是加载图像文件成为一个Mat对象,其中第一个参数表示图像文件名称 第二个参数,表示加载的图像是什么类型。(Mat一般为二维的数组)

支持常见的三个参数值:

IMREAD_UNCHANGED (<0) 表示加载原图,不做任何改变(一般默认为加载原图) 

IMREAD_GRAYSCALE ( 0)表示把原图作为灰度图像加载进来

IMREAD_COLOR (>0) 表示把原图作为RGB图像加载进来

#include<opencv2/opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
	Mat src = imread("D:/opencv/2/a.jpg",IMREAD_GRAYSCALE);//把图片显示为灰度照片
	imshow("input", src);
	waitKey(0);
	return 0;
}

 2.

#include<opencv2/opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
	Mat src = imread("D:/opencv/2/a.jpg",IMREAD_GRAYSCALE);//输出灰度



	if (src.empty())
	{
		printf("could not load image...\n");
			return 0;
	}                                              //如果是空白的(为空)输出...
        

                                                
	namedWindow("input", WINDOW_FREERATIO); 

      //一张图片如果过大,没有办法完全显示出来
      //上面这句话就可以解决

	imshow("input", src);
	waitKey(0);


	//destoryAllWindows();对前面创建的所以项目清空
    //上面这句话,我会报错,但写不写目前并不会影响程序的运行

	return 0;
}

namedWindos功能是创建一个OpenCV窗口,它是由OpenCV自动创建与释放,你无需取销毁它。 常见用法namedWindow("Window Title", WINDOW_AUTOSIZE)

WINDOW_AUTOSIZE会自动根据图像大小,显示窗口大小,不能人为改变窗口大小

WINDOW_FREERATIO会自动根据图像大小,显示窗口大小。两者有什么区别不清楚。

WINDOW_NORMAL,跟QT集成的时候会使用,允许修改窗口大小。

imshow根据窗口名称显示图像到指定的窗口上去,第一个参数是窗口名称,第二参数是Mat对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值