OpenCv-001-读取存储图片

基础是以C++开始学起,OpenCv主要用在图片处理方面,图片的本质就是矩阵。以行列为序,每个矩阵单元存储三个值,R,G,B,通过遍历每个像素元,处理图片

一,引入opencv头文件

#include <opencv2\opencv.hpp>

二,通过imread通过图片路径读取图片

1,读取进来的图片作为Mat对象

Mat src = imread("F:\\opencv\\InputImg\\h4.jpg",IMREAD_UNCHANGED);//,IMREAD_GRAYSCALE作为灰度图像加载进来

2,判断图片是否为空

if (src.empty()) {
		cout << "打开错误" << endl;
		return -1;
	}

三,创建OpenCv窗口

1,通过namedWindow创建OpenCv工作窗口

namedWindow("opencv setup window", CV_WINDOW_AUTOSIZE);  //创建opencv窗口 AUTOSIZE自动改变窗口大小,不能人为干预

2,在窗口中显示加载的图片

imshow("opencv setup demo", src);  //显示图像

注意,这里一般是显示一张图像需创建一个openc工作窗口,但是我发现直接imshow也没有问题

四,将图像转换为灰度图像

1,创建新的Mat对象接受转换后的图片

Mat outout_image;

2,通过cvtColor方法进行转换

cvtColor(src, outout_image, CV_BGR2GRAY); //转换图像到另一个色彩空间 转换为灰度

3,显示转换后的图像

namedWindow("output window ", CV_WINDOW_AUTOSIZE);
imshow("output window", outout_image);

4,通过imWrite保存转换后的图像

imwrite("F:/opencv/OutputImg/opencv001.png", outout_image); //保存图片

五,案例演示:


#include <opencv2\opencv.hpp>
#include <iostream>
#include <math.h>
using namespace cv;
using namespace std;
int main(int argc,char**argv)
{
	Mat src = imread("F:\\opencv\\InputImg\\h4.jpg",IMREAD_UNCHANGED);//,IMREAD_GRAYSCALE作为灰度图像加载进来
	if (src.empty()) {
		cout << "打开错误" << endl;
		return -1;
	}
	namedWindow("opencv setup window", CV_WINDOW_AUTOSIZE);  //创建opencv窗口 AUTOSIZE自动改变窗口大小,不能人为干预
	imshow("opencv setup demo", src);  //显示图像
	namedWindow("output window ", CV_WINDOW_AUTOSIZE);
	Mat outout_image;
	cvtColor(src, outout_image, CV_BGR2GRAY); //转换图像到另一个色彩空间 转换为灰度
	imshow("output window", outout_image);
	imwrite("F:/opencv/OutputImg/opencv001.png", outout_image); //保存图片
	waitKey(0);
	return 0;
}


在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值