加载图像: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. Nginx 配置访问本地目录

    server { listen 8888; # 监听端口 server_name peer; # 服务名 charset utf-8; # 字符集,可处理中文乱码 location / { autoi ...

  2. 秒秒钟破解eval加密

    前言  准确的说eval处理过的代码应该叫做压缩代码,不过效果上算是加密过了一样!很多小伙伴不想直接让别人看到自己的js代码往往就会采取这样的处理措施.不过,其实这样的方法只能防御那些小白.对于真正的 ...

  3. ffmpeg常用数据结构

    from :http://my.oschina.net/u/555701/blog/56748 AVCodecContext 这是一个描述编解码器上下文的数据结构,包含了众多编解码器需要的参数信息,如 ...

  4. 如何在网页读取用户IP,操作系统版本等数据demo

    我们浏览网页的时候,会不经意间看到,有些地方(如个人的签名档)显示出了个人的IP,操作系统等数据.借助第三方API和请求报头useragent是很容易实现的. <html> <hea ...

  5. 【WPF学习】第三十九章 理解形状

    在WPF用户界面中,绘制2D图形内容的最简单方法是使用形状(shape)——专门用于表示简单的直线.椭圆.矩形以及多变形的一些类.从技术角度看,形状就是所谓的绘图图元(primitive).可组合这些 ...

  6. 使用stringstream打破字符与其他类型之间的隔阂

    考虑这样一个问题:给您一行各位数字,计算它们的和.数字之间用空格隔开.只能使用字符串. 一般考虑使用getchar,但这对于不熟悉 ASCLL 码的同学十分困难.C++的sstream头文件中提供了十 ...

  7. HDU_1232_并查集

    http://acm.hdu.edu.cn/showproblem.php?pid=1232 第一道并查集,挺好理解的,初始化,查找根节点,连接,路径压缩. #include<iostream& ...

  8. eclipse里新建work set,将项目分组放在不同文件夹

    想必大家的Eclipse里也会有这么多得工程...... 每次工作使用到的项目肯定不会太多...... 每次从这么大数量的工程当中找到自己要使用的, 必须大规模的滚动滚动条......有点不和谐了. ...

  9. Thread Based Parallelism - Thread in a Subclass

    Thread Based Parallelism - Thread in a Subclass 1 import threading import time exit_Flag = 0 class m ...

  10. 20200221--python学习第14天

    今日内容 带参数的装饰器:flash框架+django缓存+写装饰器实现被装饰的函数要执行N次 模块: os sys time datetime和timezone[了解] 内容回顾与补充 1.函数 写 ...