【OpenCV学习笔记之一】图像加载,修改及保存
加载图像(用cv::imread)
imread功能是加载图像文件成为一个Mat对象 其中第一个参数表示图像文件名称
第二个参数 表示加载的图像是什么类型 支持常见的三个参数值
IMREAD_UNCHANGE(<0)表示加载原图 不做任何改变
IMREAD_GRAYSCALE(0)表示把原图作为灰度图像加载进来
IMREAD_COLOR(>0)表示把原图作为RGB图像加载进来
注意:OpenCV支持jpg png tiff等常见格式图像文件加载
显示图像(cv::namedWindow与cv::imshow)
namedWindow功能是创建一个OpenCV窗口 它是由OpenCV自动创建与释放 你无需去销毁它
常见用法:nameWindow("Window Title",WINDOW_AUTOSIZE)
WINDOW_AUTOSIZE会自动根据图像大小 显示窗口大小 不能人为的改变窗口大小
WINDOW_NORMAL跟QT集成的时候会使用 允许修改窗口大小
imshow根据窗口名称显示图像到指定的窗口上去,第一个参数是窗口名称,第二个参数是Mat对象
修改图像(cv::cvtColor)
cvtColor的功能是把图像从一个彩色空间转换到另外一个色彩空间 有三个参数
第一个参数表示源图像 第二个参数表示色彩空间转换之后的图像
第三个参数表示源和目标色彩空间 如:COLOR_BGR2HLS COLOR_BGR2GRAY等
cvColor(image,gray_image,COLOR_BGR2GRAY)
保存图像(cv::imwrite)
保存图像文件到指定目录路径
只有8位 16位的png jpg tiff文件格式而且是单通道或者三通道的BRG的图像才可以通过这种方式保存
保存png格式的时候 可以保存透明通道的图片
可以指定压缩参数
参考程序如下:
#include <opencv2\opencv.hpp>
#include <math.h>
#include <iostream>
using namespace cv;
int main(int argc, char const *argv[])
{
Mat src = imread("../1.png");
if(src.empty()){
printf("Could not load image\n");
return -;
}
namedWindow("opencv setup demo",CV_WINDOW_AUTOSIZE);
imshow("opencv setup demo",src);
namedWindow("output windows",CV_WINDOW_AUTOSIZE);
Mat output_image;
cvtColor(src,output_image,CV_BGR2HSV);
imshow("output windows",output_image);
imwrite("D:/xxx.jpg",output_image);
waitKey();
return ;
}
【OpenCV学习笔记之一】图像加载,修改及保存的更多相关文章
- thinkphp学习笔记9—自动加载
原文:thinkphp学习笔记9-自动加载 1.命名空间自动加载 在3.2版本中不需要手动加载类库文件,可以很方便的完成自动加载. 系统可以根据类的命名空间自动定位到类库文件,例如定义了一个类Org\ ...
- 跟我一起学opencv 第一课之图像加载,修改,保存
使用opencv前记得引入库和头文件: #include<opencv2\opencv.hpp> 1.加载图像(cv::imread)(OPENCV 支持 JPG,PNG,TIFF等常见格 ...
- [OpenCV学习笔记3][图像的加载+修改+显示+保存]
正式进入OpenCV学习了,前面开始的都是一些环境搭建和准备工作,对一些数据结构的认识主要是Mat类的认识: [1.学习目标] 图像的加载:imread() 图像的修改:cvtColor() 图像的显 ...
- OpenCV学习笔记(3)——图像的基本操作
获取图像的像素值并修改 获取图像的属性(信息) 图像的ROI() 图像通道的拆分及合并 1.获取并修改像素值 先读入图像装入一个图像实体,然后该实体相当于一个多维list,可以直接用数组操作提取像素信 ...
- node 学习笔记 - Modules 模块加载系统 (1)
本文同步自我的个人博客:http://www.52cik.com/2015/12/11/learn-node-modules-path.html 用了这么久的 require,但却没有系统的学习过 n ...
- Openstack本学习笔记——Neutron-server服务加载和启动源代码分析(三)
本文是在学习Openstack过程中整理和总结.因为时间和个人能力有限.错误之处在所难免,欢迎指正! 在Neutron-server服务载入与启动源代码分析(二)中搞定模块功能的扩展和载入.我们就回到 ...
- Spring学习笔记(1)——资源加载
<!-- 占坑,迟点补充底层原理 --> Spring支持4种资源的地址前缀 (1)从类路径中加载资源——classpath: classpath:和classpath:/是等价的,都是相 ...
- node 学习笔记 - Modules 模块加载系统 (2)
本文同步自我的个人博客:http://www.52cik.com/2015/12/14/learn-node-modules-module.html 上一篇讲了模块是如何被寻找到然后加载进来的,这篇则 ...
- 【EF学习笔记08】----------加载关联表的数据 显式加载
显式加载 讲解之前,先来看一下我们的数据库结构:班级表 学生表 加载从表集合类型 //显示加载 Console.WriteLine("=========查询集合===========&quo ...
随机推荐
- Windows Server 2012无法安装 .NET3.5-安装角色或功能失败,找不到源文件
新服务器搭建环境总是有很多问题.在安装MS SQL SERVER 2014 EXPRESS的时候提示无法安装成功,需要先安装 .NET Framework 3.5!但是新问题又来了,使用Windows ...
- MySQL复制 slave_exec_mode 参数IDEMPOTENT 说明
背景: 今天无意当中看到参数slave_exec_mode,从手册里的说明看出该参数和MySQL复制相关,是可以动态修改的变量,默认是STRICT模式(严格模式),可选值有IDEMPOTENT模式 ...
- 用LinkedList
>用LinkedList模拟栈集合MyStack >MyStack测试类 用LinkedList模拟栈集合MyStack import java.util.LinkedList; ...
- Centos7源码安装httpd2.4版本web服务器
我们的系统平台是在centos7.5的环境下安装httpd2.4版本的软件,2.4版本的软件有一个特征就是需要安装arp包以及arp-util包才可以. 1.首先是下载httpd2.4版本的包,以及安 ...
- October 31st, 2017 Week 44th Tuesday
No matter how hard the past is, you can always begin again. 不管过去有多么困难,你都可以重新开始. Honestly, I don't ag ...
- Java实现XML和JavaBean互转 - XStream
1.简介 XStream是一个序列化JavaBean为XML文件以及反序列化的工具. 2.准备 2.1.XML回顾 在学习这部分内容前,假设你对XML以及有一定的了解,至少能够分辨出XML的元素.属性 ...
- FastDFS分布文件系统Java客户端使用
原文链接:http://blog.csdn.net/xyang81/article/details/52847311 Java客户端源代码和jar:链接:http://pan.baidu.com/s/ ...
- Vuex数据页面刷新丢失问题解决方案
用Vue做项目开发很久了,对于vuex能用.会用,但是因为状态脱离页面和刷新丢失两个原因,一直都有种抵触,特别是一些简单的数据都是通过query或者本地存储就解决了,然而对于一些复杂内容,不可避免的还 ...
- 2017-2018-2 20165318 实验四《Android程序设计》实验报告
2017-2018-2 20165318 实验四<Android程序设计>实验报告 一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:孙晓暄 ...
- 解决Win7(x64)Anaconda3报错:AttributeError: '_NamespacePath' object has no attribute 'sort'
最近论文需要用到python做数据分析,python语法简单,但是Windows下安装第三方包恶心的要命,statsmodels用pip死活安装不上,网上查了说包相互依赖windows下的pip不能下 ...