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):三次握手四次挥手模 ...
随机推荐
- zabbix4.0的安装与配置
#安装zabbix监控首先的先安装LNMP环境,在这里我采用事先准备好的脚本进行安装LNMP环境 脚本内容如下: #!/bin/bash # DATE:Wed Jan # hw226234@126.c ...
- Java 代码实现链表
Linked List 用多少就申请多少内存. 链表是一种链式存储的线性表,所有元素的内存地址不一定连续的. 接口设计 代码实现 MyList.java(接口) package com.cyb; pu ...
- SpringMVC之Controller层最佳实践
规范设置接口, 有利于项目的可扩展性,提高前后端的交互特性. 请求参数 响应结果
- Go语言实现:【剑指offer】字符串的排列
该题目来源于牛客网<剑指offer>专题. 输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,b ...
- vue 信使 ------fetch、axios
fetch 1.什么是fetch 相当于promise 必须写两个then 第一个then返回状态码 返回成json格式 第二个then返回json数据 2.使用方法 $ npm install fe ...
- golang-练习ATM --面向对象实现
package utils import ( "fmt" "strings" ) type StructAtm struct { action int loop ...
- NAT 地址转换
NAT功能 NAT不仅能解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机.1.宽带分享:这是 NAT 主机的最大功能.解决IP4地址短缺的问题 ...
- 解决mysql登录报错ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)问题
问题描述: 在ubuntu14.04上安装完MYSQL后,MYSQL默认给分配了一个默认密码,但当自己在终端上使用默认密码登录的时候,总会提示一个授权失败的错误. 报错信息:Access denied ...
- Python面试(网编+数据库)
第一部分 必答题 简述 OSI 7层模型及其作用?(2分) 应用层:与用户直接交互,软件.网站等 表示层:使用软件.网站可以查看的数据,图片等 会话层:保持登录状态,电脑中为cookie 传输层:选择 ...
- 使用vscode对threejs的本地调试
始终坚信阅读和调试结合的方式,才是学习开源的高效方法 一.老版本调试 遥想当年的threejs(使用版本为r75)还没有CommonJS,对于我这个小白可以拿起大刀大杀四方......(咳.咳. 就是 ...