加载图像: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 加载、显示、修改、保存图像的更多相关文章

  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. python中os模块的一些小总结

    (一)os模块的应用小总结 os.name: 获取当前系统平台,Windows下返回'nt',Linux下返回'posix'.   os.linesep: 获取当前平台使用的行终止符.Windows下 ...

  2. LinearLayout里面的空间居中对齐

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  3. [C/C++]_[Unicode转Utf8,Ansi转Unicode,Ansi文件转Utf8文件]

    http://blog.csdn.net/infoworld/article/details/15337665 场景: 1.也就只有windows需要那么麻烦,还搞一个ANSI编码.学学mac os ...

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

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

  5. 第3章 JDK并发包(二)

    3.1.2 重入锁的好搭档:Condition条件 它和wait()和notify()方法的作用是大致相同的.但是wait()和notify()方法是和synchronized关键字合作使用的,而Co ...

  6. Golang设置https访问,以及http如何重定向到https

    设置https访问: 原始代码为http监听: func main() { server := &http.Server{ Addr: ":8080", ... } go ...

  7. 渡一教育公开课重点笔记之css

    主流浏览器及内核 浏览器         内核 IE             trident Firefox    Gecko Google chrome    Webkit/blink(2014年上 ...

  8. node基础 day1

    js为什么能在浏览器中运行 浏览器内部存在一个js解析器,解析ECMAscript 把引擎从浏览器中抽离出来,不再依赖浏览器,作为一个软件安装在电脑上,在命令行里面, 这个软件就是node node ...

  9. pytorch之 CNN

    # library # standard library import os # third-party library import torch import torch.nn as nn impo ...

  10. 修改centos7容器的时间和宿主机时间一致

    一.问题 centos7系统容器时间与宿主机系统时间不一致,就进去查看一番,发现时区和宿主机上的时间不一致,下面就来解决一下 二.现象 1.查看centos宿主机的时间 输入如下命令查看 # date ...