opencv —— imread、namedWindow & imshow、cvtColor、imwrite 加载、显示、修改、保存图像
加载图像:imread 函数
Mat imread(const string& filename, int flags = 1);
- filename:需要载入的图像的路径名。
- flags:加载图像的颜色类型,默认值为 1。flags = 1(IMREAD_COLOR):返回一个 BGR 类型的三通道彩色图像;flags = 0(IMREAD_GRAYSCALE):返回灰度图像;flags = -1(IMREAD_UNCHANGED):返回包含 Alpha 通道的加载图像。
Mat src_1 = imread("C:/Users/齐明洋/Desktop/1.jpg");
Mat src_0 = imread("C:/Users/齐明洋/Desktop/1.jpg", );
显示图像:namedWindow 与 imshow 函数
void nameWindow(const string& winname, int flags = WINDOW_AUTOSIZE) ;
- winname:新建窗口的名称。
- flags:窗口的标识,默认为 WINDOW_AUTOSIZE 。
WINDOW_AUTOSIZE 窗口大小自动适应图片大小,并且不可手动更改。
- WINDOW_NORMAL 用户可以改变这个窗口大小。
namedWindow("测试窗口");//窗口自动适应图片大小,大小不可手动更改
namedWindow("测试窗口", WINDOW_NORMAL);//用户可以改变窗口大小
void imshow(const string& winname, InputArray mat);
- winname:展示窗口的名称,未使用 nameWindow 创建窗口时,自动创建窗口。
- mat:展示图片。
imshow("测试窗口", Imags);
修改图像:cvtColor 函数
cvtColor 是颜色空间转换函数,可以实现 RGB 颜色、HSV 颜色、HSI 颜色、lab 颜色、YUV 颜色间的转换,也可以实现彩色和灰度图互转。
void cvtColor(InputArray src, OutputArray dst, int code, int dstCn = 0);
- src :原图像。
- dst :进行颜色空间变换后的图像。
- code :转换的代码或标识,即要转换成什么颜色空间的图片。
- dstCn = 0 :目标图像通道数,可以使用默认值,什么都不写。
cvtColor(Imags, Imags2, COLOR_BGR2HSV);//BGR 颜色模型向 HSV 颜色模型转换
cvtColor(Imags, Imags2, COLOR_BGR2GRAY);//BGR 颜色模型向 GRAY 颜色模型转换
HSV 颜色模型
RGB 和 CMY 颜色模型都是面向硬件的,而 HSV(Hue Saturation Value)颜色模型是面向用户的。 HSV 是根据颜色的直观特性由 A.R.Smith 在1978年创建的一种颜色空间, 也称六角锥体模型(Hexcone Model)。 这个模型中颜色的参数分别是:色调(H),饱和度(S),明度(V)。
保存图像:imwrite 函数
void imwrite(const string& filename, InputArray mat);
- filename:待保存图像的储存位置。
- mat:待保存图像。
imwrite("C:/Users/齐明洋/Desktop/修改后图片.png", Imags);
代码示例:
#include <opencv.hpp>
using namespace cv;
int main() {
Mat Imags = imread("C:/Users/齐明洋/Desktop/tem.jpg");
if (Imags.empty()) {
printf("不能加载图像!");
return -;
}
namedWindow("测试窗口2", WINDOW_NORMAL);
Mat Imags2;
cvtColor(Imags, Imags2, COLOR_BGR2HSV);//RGB 颜色模型向 HSV 颜色模型转换
imshow("测试窗口", Imags);
imshow("测试窗口2", Imags2);
imwrite("C:/Users/齐明洋/Desktop/修改后图片.png", Imags2);
waitKey();
return ;
}
运行结果:

opencv —— imread、namedWindow & imshow、cvtColor、imwrite 加载、显示、修改、保存图像的更多相关文章
- openCV - 1. 加载、修改、保存图像
加载 cv::imread 修改 cv::cvtColor 保存 cv::imwrite 加载图像cv::imread imread功能是加载图像文件成为一个Mat对象,其中第一个参数表示图像文件名称 ...
- bootstrap模态框modal使用remote第二次加载显示相同内容解决办法
bootstrap模态框modal使用remote动态加载内容,第二次加载显示相同内容解决办法 bootstrap的modal中,使用remote可以动态加载页面到modal-body中,并弹窗显示 ...
- Android Phonebook编写联系人UI加载及联系人保存流程(一)
2014-01-06 17:05:11 将百度空间里的东西移过来. 本文适合ROM定制做Phonebook的童鞋看,其他人飘过即可- Phonebook添加/编辑联系人UI加载及保存联系人流程,是一系 ...
- [ActionScript 3.0] AS3.0 动态加载显示内容
可以将下列任何外部显示资源加载到 ActionScript 3.0 应用程序中: 在 ActionScript 3.0 中创作的 SWF 文件 — 此文件可以是 Sprite.MovieClip 或扩 ...
- SDWebImage 加载显示 GIF 与性能问题
SDWebImage 加载显示 GIF 与性能问题 SDWebImage 4.0 之前,可以用 UIImageView 显示 GIF 图.如果 SDWebImage 4.0 还这么做,只会显示静态图. ...
- SDWebImage 加载显示 WebP 与性能问题
SDWebImage 加载显示 WebP 与性能问题 本文包含自定义下载操作 SDWebImageDownloaderOperation 与编码器 SDWebImageCoder.SDWebImage ...
- 一个页面从输入url到页面加载显示完成,中间都经历了什么
第一种解释: 一般会经历以下几个过程: 1.首先,在浏览器地址栏中输入url 2.浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容.若没有,则跳到第三步操作. 3 ...
- swift 基础小结01 --delegate、Optional、GCD的使用、request请求、网络加载图片并保存到沙箱、闭包以及桥接
本文主要记录swift中delegate的使用.“?!”Optional的概念.GCD的使用.request请求.网络加载图片并保存到沙箱.闭包以及桥接. 一.delegate的使用 swift中de ...
- 浏览器加载显示html页面内容的顺序
我们经常看到浏览器在加载某个页面时,部分内容先显示出来,又有些内容后显示.那么浏览器加载显示html究竟是按什么顺序进行的呢 其实浏览器加载显示html的顺序是按下面的顺序进行的:1.IE下载的顺序是 ...
- 一个页面从输入URL到加载显示完成,发生了什么?
面试经典题--URL加载 一.涉及基本知识点: 1. 计算机网络 五层因特尔协议栈: 应用层(dns.http):DNS解析成IP并完成http请求发送: 传输层(tcp.udp):三次握手四次挥手模 ...
随机推荐
- JavaScript(4)---BOM详解
JavaScript(4)---BOM详解 之前写过一篇有关DOM的博客:JavaScript(2)---DOM详解 DOM有个顶级对象叫:document.同样BOM中也有顶级对象叫 window. ...
- 如何更改Jframe里Jpanel的大小
先贴代码: package xiya; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; ...
- Idea使用插件实现逆向工程搭建SpringBoot项目
之前写SpringBoot项目,每次都要手动去写实体类.dao层啥的,尤其是数据库表字段特别多的时候,特别麻烦.然后很多小伙伴都会用逆向工程来自动生成这些类,省去许多没必要的代码量,但是Mybatis ...
- BZOJ 1601 [Usaco2008 Oct]灌水 (建图+mst)
题意: 300个坑,每个坑能从别的坑引水,或者自己出水,i从j饮水有个代价,每个坑自己饮水也有代价,问让所有坑都有谁的最少代价 思路: 先建一个n的完全图,然后建一个超级汇点,对每个点连w[i],跑m ...
- [RAC] 1. 安装Oracle RAC时,不能验证ASMSNMP密码问题的解决(ORA-01031或ORA-01017)
1."ORA-01031: insufficient privileges" [grid@node1 bin]$ orapwd file=/u01/app/11.2.0/gri ...
- Go语言实现:【剑指offer】二叉搜索树的第k个的结点
该题目来源于牛客网<剑指offer>专题. 给定一棵二叉搜索树,请找出其中的第k小的结点.例如,(5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4. Go语言实现: ...
- Go语言实现:【剑指offer】二叉搜索树的后序遍历序列
该题目来源于牛客网<剑指offer>专题. 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. Go ...
- 编辑crontab添加Linux计划任务
在做实验楼的比赛时的题目 用到了crontable 1. 为用户shiyanlou添加一个计划任务 2. 每天凌晨2点定时执行 3. 将/var/log/dpkg.log /var/log/mysql ...
- C#开源组件DocX处理Word文档基本操作(二)
上一篇 C#开源组件DocX处理Word文档基本操作(一) 介绍了DocX的段落.表格及图片的处理,本篇介绍页眉页脚的处理. 示例代码所用DocX版本为:1.3.0.0.关于版本的区别,请参见上篇,而 ...
- Hexo搭建静态博客踩坑日记(一)
前言 博客折腾一次就好, 找一个适合自己的博客平台, 专注于内容进行提升. 方式一: 自己买服务器, 域名, 写前端, 后端(前后分离最折腾, 不分离还好一点)... 方式二: 利用Hexo, Hug ...