C++-opencv的imread、imshow、waitkey、namedWindow

这篇具有很好参考价值的文章主要介绍了C++-opencv的imread、imshow、waitkey、namedWindow。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在C++中使用OpenCV时,imreadimshow是两个非常基础且常用的函数,用于读取图像和显示图像。以下是这两个函数的简要说明和如何一起使用它们的示例。

imread函数

imread用于从指定的文件路径读取图像。它将图像读入为cv::Mat对象,这是OpenCV中存储图像的主要数据结构。

cv::Mat imread(const String& filename, int flags = IMREAD_COLOR);

filename:图像文件的路径。
flags:读取图像的方式。常用的标志包括:
cv::IMREAD_COLOR:以彩色模式读取图像,默认选项。
cv::IMREAD_GRAYSCALE:以灰度模式读取图像。
cv::IMREAD_UNCHANGED:读取图像包含alpha通道。

imshow函数

imshow用于在指定的窗口中显示图像。如果窗口不存在,imshow会自动创建一个窗口。

void imshow(const String& winname, InputArray mat);

winname:窗口的名称。如果窗口已经存在,这个调用会更新窗口中的图像。
mat:要显示的图像,通常是由imread读取得到的cv::Mat对象。

waitKey函数

在C++中使用OpenCV时,waitKey函数是用于等待一个键盘事件的函数,它对于图像显示以及处理用户输入是非常关键的。这个函数暂停程序的执行,等待用户按下任何键或等待指定的时间。

int waitKey(int delay = 0);

delay:等待按键事件的时间长度,单位为毫秒。默认值为0,表示无限期等待。如果指定了正数,则函数会等待指定的毫秒数看是否有键盘事件发生;如果在这段时间内有键盘事件,函数会立即返回按键的ASCII码,否则返回-1。

waitKey使用场景

图像显示:waitKey通常与imshow一起使用,以便在显示图像时暂停程序,让用户有机会查看图像。
视频处理:在处理视频或摄像头实时数据时,waitKey可以用来控制帧率,通过在读取每一帧后调用waitKey并传递适当的延迟时间(例如waitKey(30)以大约实现30帧/秒)。
事件处理:通过检查waitKey的返回值,可以实现对特定按键事件的响应,例如退出程序、暂停播放、保存图像等。

waitKey是OpenCV程序中处理用户输入和控制程序流程的一个重要函数,通过合理使用它,可以增加程序的交互性和灵活性。

namedWindow函数

在C++中,OpenCV提供了namedWindow函数来创建一个窗口,这个窗口可以用于显示图像。使用namedWindow是可选的,因为当你使用imshow直接显示图像时,如果没有预先创建窗口,OpenCV会自动创建一个。但是,namedWindow允许你在显示图像之前对窗口进行更多的配置,例如设置窗口的大小、是否可以调整大小等。一般使用namedWindow创建自适应窗口。

void namedWindow(const String& winname, int flags = WINDOW_AUTOSIZE)

应用示例

#include<opencv2/opencv.hpp>
#include<quick_opencv.h>
#include<iostream>

using namespace cv;
using namespace std;

int main(int argc, char** argv)
{
	
	//读取并显示图像,如果imread返回的Mat对象(src)是空的,打印错误消息并退出程序。
	Mat src = imread("C:/Users/Desktop/opencv-0/win.png");//B G R 蓝绿红
	if (src.empty())
	{
		printf("could not find the image...\n");
		return -1;
	}
	namedWindow("输入窗口", WINDOW_FREERATIO);//创建一个可以自由调整比例的窗口
	imshow("输入窗口", src);

	
	//等待用户输入并清理资源
	waitKey(0);
	destroyAllWindows();
	return 0;
}

C++-opencv的imread、imshow、waitkey、namedWindow,opencv,c++,opencv文章来源地址https://www.toymoban.com/news/detail-827228.html

到了这里,关于C++-opencv的imread、imshow、waitkey、namedWindow的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • opencv中调整图像显示框大小,cv2.namedWindow()

    如果要要调整cv2.imshow显示出来的窗口大小, 需要使用 cv2.namedWindow(‘窗口标题’, 默认参数) 参数 cv2.imshow(‘窗口标题’,image),如果前面没有cv2.namedWindow,就自动先执行一个cv2.namedWindow() 窗口默认cv2.WINDOW_AUTOSIZE namedWindow函数的作用是通过指定的名字,创建一个可以作为图像和

    2024年02月16日
    浏览(46)
  • 【Python】进阶学习:OpenCV--一文详解cv2.namedWindow()

    【Python】进阶学习:OpenCV–一文详解cv2.namedWindow() 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您的订阅和支持~ 💡 创作高质量博文(平均质量分92+),分享更多关于深度学习、

    2024年03月20日
    浏览(108)
  • opencv之imread函数

    原型:Mat imread( const String filename, int flags ); 参数1:文件名路径 参数2:载入标识;它指定一个加载图像的类型;默认为1;  flags 取值 :可以是以下枚举类型: (1) 输入有冲突情况, 如CV_LOAD_IMAGE_COLOR  | CV_LOAD_IMAGE_ANYCOLOR 时,将采用较小的数字值,将载入3通道图; (2) 若希望 载入最真实的图

    2024年02月09日
    浏览(31)
  • opencv imread图像读取不成功

    不论是imread读取相对路径还是绝对路径,如果imread读取不成功,显示Nnoe,很有可能是你的路径名字中含有中文,检查你的路径中是否含有中文,有的话将其改为英文。 在Python中,使用绝对路径时,通常需要在路径字符串中使用反斜杠()来分隔目录和文件名。但需要注意的是

    2024年02月08日
    浏览(38)
  • OpenCV使用imread读取图片失败解决方案

    使用一下代码读取图像,出现[ WARN:0@1.635] global D:aopencv-pythonopencv-pythonopencvmodulesimgcodecssrcloadsave.cpp (239) cv::findDecoder imread_(‘D:.jpg’): can’t open/read file 报错信息 原因是使用绝对路径时“”要换成“\\\\” 导入成功

    2024年02月11日
    浏览(58)
  • opencv使用imshow()输出时怎样设置窗口大小

    在学习OpenCV的过程中,第一步就是要读取图片并输出,但在输出过程中我发现简单地使用cv2.imshow(\\\'winname\\\',path)输出得到的图片常常不能窥全貌,被默认函数一自适应,就显示不完,还太大,因此,我想要自动拉伸窗口尺寸且不改变宽高比。 创建窗口函数cv2.namedwindow()介绍 其中

    2024年02月04日
    浏览(40)
  • python-opencv第一期:imread函数详解

    概要:众 嗦粥之 所周知,在如今计算机视觉( Computer Version short for CV)是人工智能与机器人技术发展的一个重大研究方向,而 opencv 作为一个专门为计算机视觉编程提供技术与函数支持的第三方库,自然是一个需要重点研究的内容。本篇博客将介绍python-opencv库中较为简单的

    2024年02月09日
    浏览(35)
  • opencv的cv2.imread解决中文路径问题

    cv2.imread()读取不了中文路径,但是cv2.imdecode可以解码 拓展: cv2.imdecode(…)/cv2.imencode(…)传入参数为包含图像文件内容的内存buffer,为整个文件的内容,包含格式说明、图像数据等等,并非只有图像像素数据。 语法如下: 1 imdecode(buf, flags)        buf: 包含图像文件的buffer  

    2024年04月12日
    浏览(34)
  • 使用OpenCV的cv2.imread函数读取图像介绍

    在计算机视觉和图像处理应用中,读取图像是一个常见的操作。OpenCV是一个广泛使用的图像处理库,它提供了 cv2.imread 函数,用于读取图像。本文将详细介绍如何使用 cv2.imread 函数,包括参数和用法。 首先,确保你已经安装了OpenCV库。你可以使用以下命令来安装OpenCV(如果尚

    2024年02月05日
    浏览(72)
  • OpenCV使用cv2.imshow()报错的解决办法

    The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. 版本出错应该是不太可能的,于是我试着安装一下OpenCV的拓展开发包也就是. opencv-contrib 没想到,折腾好久的问题,最后一行命令解决问题了 pip install --user opencv-contrib-python -i https://pypi.tuna.tsinghua.edu.cn 总结

    2024年02月11日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包