跟我一起学opencv 第一课之图像加载,修改,保存
使用opencv前记得引入库和头文件:
#include<opencv2\opencv.hpp>
1.加载图像(cv::imread)(OPENCV 支持 JPG,PNG,TIFF等常见格式图像文件加载)
imread函数原型是:
CV_EXPORTS_W Mat imread( const String& filename, int flags = IMREAD_COLOR );
------imread加载一副由filename指定的图像文件并返回一个Mat对象
------第一个参数是文件的完整路径,第二个参数表示加载的图像是什么类型,支持常见的三种值
-----默认值1下加载一副图像
Mat src = imread("E:\\vsprom\\learn01\\test.jpg");

-----IMREAD_UNCHANGED(<0)表示加载原图,不做任何改变

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

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

Mat src = imread("E:\\vsprom\\learn01\\test.jpg",IMREAD_COLOR);
2.修改图像(cv::cvtColor) 颜色空间改变
BGR2GRAY ---------RGB图像变为灰度图像

BGR2HLS-------RGB色彩空间转为HLS色彩空间

Mat output_img;
cvtColor(src, output_img, CV_BGR2HLS);
imshow("output image", output_img);
3.保存图像(cv::imwrite)
*******保存图像文件到指定目录
imwrite("D:/TEST.PNG", output_img);

*******只有8位,16位的PNG,JPG,TIFF文件格式而且是单通道或者三通道的BGR图像才可以通过这种方式保存
JPG格式
imwrite("D:/TEST.JPG", output_img);

TIFF

*******保存PNG指定格式的时候可以保存透明通道的图片
*******可以指定压缩参数
完整代码:
#include<opencv2\opencv.hpp>
#include<iostream> using namespace cv;
using namespace std; int main(int argc, char **argv)
{
Mat src = imread("E:\\vsprom\\learn01\\test.jpg",IMREAD_COLOR);
if (src.empty())
{
cout << "can not load image...\n"<<endl;
return -;
}
namedWindow("test opencv setup", CV_WINDOW_AUTOSIZE);
imshow("test opencv setup", src); namedWindow("output image", CV_WINDOW_AUTOSIZE);
Mat output_img;
cvtColor(src, output_img, CV_BGR2HLS);
imshow("output image", output_img); imwrite("D:/TEST.tif", output_img); waitKey();
return ;
}
跟我一起学opencv 第一课之图像加载,修改,保存的更多相关文章
- OpenCV图像加载与保存
OpenCV中的图像加载与保存 头文件是包含的库,在GitHub上下载的 imread("图片路径",图片加载方式) 图片加载方式: IMREAD_GRAYSCALE 灰度图像 I ...
- 【OpenCV学习笔记之一】图像加载,修改及保存
加载图像(用cv::imread)imread功能是加载图像文件成为一个Mat对象 其中第一个参数表示图像文件名称第二个参数 表示加载的图像是什么类型 支持常见的三个参数值IMREAD_UNCHANG ...
- opencv 加载 修改 保存 图像
#include <opencv2/opencv.hpp> #include <iostream> using namespace cv; /* 1 加载图像 cv::imre ...
- 跟我一起学opencv 第二课之图像的掩膜操作
1.掩膜(mask)概念 用选定的图像,图形或物体,对处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程.用于覆盖的特定图像或物体称为掩模或模板.光学图像处理中,掩模可以足胶片,滤光片等 ...
- 1、OpenCV Python 图像加载和保存
__author__ = "WSX" import cv2 as cv # 这里的文件是图片或者视频 def Save_File( image ): cv.imwrite(&quo ...
- OpenCV 第一课(安装与配置)
OpenCV 第一课(安装与配置) win10,opencv-2.4.13, 安装, vs2013, 配置 下载安装软件 官网OpenCV下载地址下载最新版本,我下载的是opencv.2.4.13,然 ...
- OpenCV 第二课 认识图像的存储结构
OpenCV 第二课 认识图像的存储结构 Mat Mat 类包含两部分,矩阵头和矩阵体.矩阵头包含矩阵的大小,存储方式和矩阵体存储空间的指针.因此,Mat中矩阵头的大小是固定的,矩阵体大小是不定的. ...
- <-0基础学python.第一课->
初衷:我电脑里面的歌曲很久没换了,我想听一下新的歌曲,把他们下载下来听,比如某个榜单的,但是一首一首的点击下载另存为真的很恶心 所以我想有没有办法通过程序的方式来实现,结果还真的有,而且网上已经有有人 ...
- OpenCV第一课
1.OpenCV下载地址:http://opencv.org/downloads.html 因为本人电脑装的是vs2010,所以下载的是opencv-2.4.11.exe(vc10.vc11.vc12 ...
随机推荐
- 系列博文-LowPoly风格的图像生成器
https://github.com/Ovilia/Polyvia http://www.zhihu.com/question/29856775/answer/57668656 http://zhan ...
- 如何在markdown中打出上标、下标和一些特殊符号
转自:https://www.jianshu.com/p/80ac23666a98 如何在markdown中打出上标.下标和一些特殊符号 这是朕的江山 关注 2016.08.16 17:07* 字数 ...
- storage.go
package storage import ( "fmt" "os" ) const DEFAULT_STORAGE_ENGINE = &qu ...
- bzoj 4173 打表???
没有任何思路,打表发现ans=phi(n)*phi(m)*n*m %%% popoqqq Orz 然而并没有看懂-- #include<cstdio> #include<cstrin ...
- mac升级后idea提示Can't start git
试了官网的解决方案,还是不行,然后到Stack Overflow上面,找到了下面这个方法,完美解决. 在命令行中运行: xcode-select --install 安装软件就可以了.
- openoffice excel word 转换pdf 支持本地调用和远程调用
OpenOffice.org 是一套跨平台的办公室软件套件,能在Windows.Linux.MacOS X (X11)和 Solaris 等操作系统上执行.它与各个主要的办公室软件套件兼容.OpenO ...
- 使用Akka的远程调用
概述 正如其它RPC或者RMI框架那样,Akka也提供了远程调用的能力.服务端在监听的端口上接收客户端的调用.本文将在<Spring与Akka的集成>一文的基础上介绍Akka的remote ...
- Vue 进阶之路(九)
之前的文章我们介绍了 vue 中父组件之间的传值,本章我们再来看一下父子组件间传值的参数校验和非 Props 特性. <!DOCTYPE html> <html lang=" ...
- c#位运算基本概念与计算过程
前言 一些非常基础的东西,在实际工作中没有用到.很少用到.一旦遇到,又不知所云.最近遇到一个问题,把一个int16(short) .两个bool变量整合成一个int32(int),当听到这个要求时,我 ...
- img 灰色默认外边框的去除
最近在做一个小游戏时发现了一个问题,总是在弹出img时先出现一个灰色的边框,所以为了查找问题,查找了一些关于img 默认边框的小知识点. 在这里整理了一些知识点: 一. 下面代码都试验过后会发现,im ...