学习opencv day1

学习opencv day1

学习opencv day1

今天是系统学习opencv的第一天
使用工具为opencv4.4.0+vs2019
并已使用cmake配置contrib
参考书目为《opencv计算机视觉编程攻略》+《学习opencv3》

学习内容

1、 装载、显示和储存图像

①std::cout <<
需要加上头文件

#include <iostream>

否则会出现:namespace没有成员cout
且其必须在main函数中使用,否则会出现:
此声明没有存储类或类型说明符
②imread读取图像,若只输入图片名及格式,则需将图片放至创建的对应cpp文件夹中

附上练习代码:

#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>




int main() {
	cv::Mat image; //创建一个空图像
	std::cout << " This image is " << image.rows << " x "
			  << image.cols << std::endl;
	//读取输入图像并转化为灰度图像,结果为this image is 图像的行x列
	image = cv::imread("test.jpg",cv::IMREAD_GRAYSCALE); 


	//如果没有分配图像,empty 方法将返回 true
	if (image.empty()) {
	//未创建图像
	//可能显示错误信息
	//并退出程序
		std::cout << "Error reading image..." << std::endl;
		return 0;
	}
	std::cout << " This image is " << image.rows << " x "
		<< image.cols << std::endl;
	std::cout << "This image has "
		<< image.channels() << "channel(s)" << std::endl;

	//定义窗口
	cv::namedWindow("Original image");
	//显示图像
	cv::imshow("Original image", image); //字符串名称,输出数组矩阵
	cv::waitKey(0); //暂停显示,为了显示图像,官方文档中进行了说明,imshow后必须使用waitKey

	cv::Mat result; // 建立一个新矩阵
	cv::flip(image, result, 1); // 正数表示水平翻转
						  // 0 表示垂直翻转,                     
						  // 负数表示水平和垂直

	cv::namedWindow("Output Image"); // 输出窗口
	cv::imshow("Output Image", result);

	cv::waitKey(0); // 0表示永久地等待按键
				// 键入的正数表示等待的毫秒数

	cv::imwrite("output.bmp", result); // 保存结果
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值