opencv c++读取图片(1)

#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;

int main(int argc, int** argv) {
	Mat my_pic = imread(filepath, IMREAD_UNCHANGED);//imread需要输入图像路径
	if (my_pic.empty()) {
		cout << "error the file not found!" << endl;
		return -1;
	}
	namedWindow("输入窗口", WINDOW_FREERATIO);//创建图像窗口,WINDOW_AUTOSIZE表示根据图像大小自适应,WINDOW_FREERATIO则会根据电脑屏幕大小自动调整
	imshow("输入窗口", my_pic);
	waitKey(0);//停顿时间,输入0时会使得程序在这里停止,如果输入1会停顿1ms,然后继续往下执行。
	destroyAllWindows();
	return 0;
}

说明

1、

Mat my_pic = imread(filepath, IMREAD_UNCHANGED);//imread需要输入图像路径

在上述读取输入路径中IMREAD_UNCHANGED内含数字为 int -1, 表示输入的透明通道不变。

其余还有灰度IMREAD_GRAYSCALE(0)、IMREAD_ANYCOLOR(4)等。

2、

namedWindow("输入窗口", WINDOW_FREERATIO);//创建图像窗口,WINDOW_AUTOSIZE表示根据图像大小自适应,WINDOW_FREERATIO则会根据电脑屏幕大小自动调整

WINDOW_AUTOSIZE表示根据图像大小显示图片,WINDOW_FREERATIO则会根据电脑屏幕大小自动调整,显示最合适的图片大小。

3、

注意:输入的namedWindow和imshow的窗口名字符串要保持一致,如上述程序中都为“输入窗口”。

### 如何使用OpenCVC++接口读取图片OpenCV中,`cv::imread()` 函数用于从指定路径加载图像并将其存储到 `cv::Mat` 对象中。以下是关于如何通过C++接口读取图片的具体方法和示例代码。 #### 使用 `cv::imread()` 读取图片 函数原型如下: ```cpp cv::Mat imread(const String& filename, int flags = IMREAD_COLOR); ``` 参数说明: - **filename**: 图像文件的路径。 - **flags**: 控制图像读取方式的标志,默认为 `IMREAD_COLOR`(彩色模式)。其他常用选项包括: - `IMREAD_GRAYSCALE`: 将图像转换为灰度图。 - `IMREAD_UNCHANGED`: 不改变原始图像数据(保留透明通道等)。 如果成功读取,则返回一个有效的 `cv::Mat` 对象;否则返回空矩阵。 下面是一个完整的例子来展示如何利用此功能: ```cpp #include <opencv2/opencv.hpp> #include <iostream> void help(char** argv) { std::cout << "\n" << "A simple OpenCV program that loads and displays an image from disk\n" << argv[0] << " <path/filename>\n" << "For example:\n" << argv[0] << " ../fruits.jpg\n" << std::endl; } int main(int argc, char** argv) { if (argc != 2) { help(argv); return 0; } cv::Mat img = cv::imread(argv[1], -1); // 读取图片 [-1表示保持原样] if (img.empty()) { // 检查是否成功读取 std::cerr << "Cannot load image!" << std::endl; return -1; } cv::namedWindow("Image Display", cv::WINDOW_AUTOSIZE); // 创建窗口 cv::imshow("Image Display", img); // 显示图片 cv::waitKey(0); // 等待按键事件 cv::destroyAllWindows(); // 销毁所有创建的窗口 return 0; } ``` 以上程序展示了基本流程:定义帮助信息、解析命令行输入、尝试加载图像以及处理错误情况下的退出逻辑[^2]。 另外需要注意的是,在实际应用过程中可能还会涉及到不同类型的图像格式支持问题或者跨平台兼容性等问题[^3]。 #### 注意事项 当调用 `cv::imread()` 方法时,请确保传入正确的文件路径名字符串形式,并且该位置确实存在可访问的目标文件资源。此外还需验证返回值是否为空以确认操作的成功与否。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值