加载图像: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 通道的加载图像。
  1. Mat src_1 = imread("C:/Users/齐明洋/Desktop/1.jpg");
  1. 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 用户可以改变这个窗口大小。
  1. namedWindow("测试窗口");//窗口自动适应图片大小,大小不可手动更改
  2. namedWindow("测试窗口", WINDOW_NORMAL);//用户可以改变窗口大小

void imshow(const string& winname, InputArray mat);

  • winname:展示窗口的名称,未使用 nameWindow 创建窗口时,自动创建窗口。
  • mat:展示图片。
  1. 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 :目标图像通道数,可以使用默认值,什么都不写。
  1. 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:待保存图像。
  1. imwrite("C:/Users/齐明洋/Desktop/修改后图片.png", Imags);

代码示例:

  1. #include <opencv.hpp>
  2. using namespace cv;
  3. int main() {
  4. Mat Imags = imread("C:/Users/齐明洋/Desktop/tem.jpg");
  5. if (Imags.empty()) {
  6. printf("不能加载图像!");
  7. return -;
  8. }
  9. namedWindow("测试窗口2", WINDOW_NORMAL);
  10. Mat Imags2;
  11. cvtColor(Imags, Imags2, COLOR_BGR2HSV);//RGB 颜色模型向 HSV 颜色模型转换
  12. imshow("测试窗口", Imags);
  13. imshow("测试窗口2", Imags2);
  14. imwrite("C:/Users/齐明洋/Desktop/修改后图片.png", Imags2);
  15. waitKey();
  16. return ;
  17. }

运行结果:

opencv —— imread、namedWindow & imshow、cvtColor、imwrite 加载、显示、修改、保存图像的更多相关文章

  1. openCV - 1. 加载、修改、保存图像

    加载 cv::imread 修改 cv::cvtColor 保存 cv::imwrite 加载图像cv::imread imread功能是加载图像文件成为一个Mat对象,其中第一个参数表示图像文件名称 ...

  2. bootstrap模态框modal使用remote第二次加载显示相同内容解决办法

    bootstrap模态框modal使用remote动态加载内容,第二次加载显示相同内容解决办法 bootstrap的modal中,使用remote可以动态加载页面到modal-body中,并弹窗显示 ...

  3. Android Phonebook编写联系人UI加载及联系人保存流程(一)

    2014-01-06 17:05:11 将百度空间里的东西移过来. 本文适合ROM定制做Phonebook的童鞋看,其他人飘过即可- Phonebook添加/编辑联系人UI加载及保存联系人流程,是一系 ...

  4. [ActionScript 3.0] AS3.0 动态加载显示内容

    可以将下列任何外部显示资源加载到 ActionScript 3.0 应用程序中: 在 ActionScript 3.0 中创作的 SWF 文件 — 此文件可以是 Sprite.MovieClip 或扩 ...

  5. SDWebImage 加载显示 GIF 与性能问题

    SDWebImage 加载显示 GIF 与性能问题 SDWebImage 4.0 之前,可以用 UIImageView 显示 GIF 图.如果 SDWebImage 4.0 还这么做,只会显示静态图. ...

  6. SDWebImage 加载显示 WebP 与性能问题

    SDWebImage 加载显示 WebP 与性能问题 本文包含自定义下载操作 SDWebImageDownloaderOperation 与编码器 SDWebImageCoder.SDWebImage ...

  7. 一个页面从输入url到页面加载显示完成,中间都经历了什么

    第一种解释: 一般会经历以下几个过程: 1.首先,在浏览器地址栏中输入url 2.浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容.若没有,则跳到第三步操作. 3 ...

  8. swift 基础小结01 --delegate、Optional、GCD的使用、request请求、网络加载图片并保存到沙箱、闭包以及桥接

    本文主要记录swift中delegate的使用.“?!”Optional的概念.GCD的使用.request请求.网络加载图片并保存到沙箱.闭包以及桥接. 一.delegate的使用 swift中de ...

  9. 浏览器加载显示html页面内容的顺序

    我们经常看到浏览器在加载某个页面时,部分内容先显示出来,又有些内容后显示.那么浏览器加载显示html究竟是按什么顺序进行的呢 其实浏览器加载显示html的顺序是按下面的顺序进行的:1.IE下载的顺序是 ...

  10. 一个页面从输入URL到加载显示完成,发生了什么?

    面试经典题--URL加载 一.涉及基本知识点: 1. 计算机网络 五层因特尔协议栈: 应用层(dns.http):DNS解析成IP并完成http请求发送: 传输层(tcp.udp):三次握手四次挥手模 ...

随机推荐

  1. 如何准备Java面试?如何把面试官的提问引导到自己准备好的范围内?

    Java能力和面试能力,这是两个方面的技能,可以这样说,如果不准备,一些大神或许也能通过面试,但能力和工资有可能被低估.再仔细分析下原因,面试中问的问题,虽然在职位介绍里已经给出了范围,但针对每个点, ...

  2. 聊聊CMDB的前世今生

    CMDB,Configuration Management DataBase,配置管理数据库,是与 IT 系统所有组件相关的信息库,它包含 IT 基础架构配置项的详细信息. 传统运维思路下的CMDB, ...

  3. nginx的四个主要组成部分

    1.nginx二进制可执行文件 · 由各模块源码编译出的一个文件 2.nginx.conf配置文件 · 控制nginx的行为 3.access.log访问日志 . 记录每一条http请求信息 4.er ...

  4. pugixml简单实用

    实现快递查询,调用快递100的API,未完成. #include <iostream> #include <fstream> #include <string> # ...

  5. Node——request使用代理

    本文知识点 Node环境搭建 使用代理 进阶学习 环境配置 Node 安装request 安装request npm install request 确认环境安装无误 node -v 代码样例 使用代 ...

  6. POJ 1789 Truck History (Kruskal最小生成树) 模板题

    Description Advanced Cargo Movement, Ltd. uses trucks of different types. Some trucks are used for v ...

  7. 题解 UVA1479 【Graph and Queries】

    \[ \text{Preface} \] 算是一道思维难度稍易,代码难度稍难的题吧. \[ \text{Description} \] 给出一张 \(n\) 个点,\(m\) 条边的图,点带权.需要支 ...

  8. c语言小游戏-扫雷的完成

    C语言-扫雷游戏 本文将对此游戏做一个大致的概述,此代码适合初学者,编写软件使用了vs2017. 该代码可以实现如下功能: 1.用户可以选择3个难度,分别布置不同个数的雷. 2.随机数设置雷的位置. ...

  9. 实验楼-python3简明教程笔记

    #!/usr/bin/env python3 days = int(input("Enter days: ")) print("Months = {} Days = {} ...

  10. abp(net core)+easyui+efcore实现仓储管理系统——入库管理之一(三十七)

    abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...