opencv imread后做resizie_opencv第1课-加载、修改、保存图像

(非原创,看课程自己做的笔记,防丢失放到个人空间的)

第1课-加载、修改、保存图像

  • 加载图像(cv::imread)
  • 修改图像(cv::cvtColor)
  • 保存图像(cv::imwrite)
  • 代码演示

1-加载图像

  • imread功能时加载图像文件成为一个Mat对象,其中一个参数表示图像文件名称;
  • 第二个参数,表示加载的图像是什么类型,支持常见的三个参数值:
  • IMREAD_UNCHANGED(<0)表示加载原图,不做任何改变;
  • IMREAD_GRAYSCALE(0)表示把原图作为灰度图像加载进来;
  • IMREAD_COLOR(>0)表示把原图作为RGB图像加载进来。

注意:OpenCV支持JPG,PNG,TIFF等常见格式图像文件加载。

2-显示图像

可以使用(cv::namedWindos和cv::imshow)

  • namedWindos功能是创建一个OpenCV窗口,它是由openCV自动创建与释放,你无须销毁它;
  • 常见用法namedWindow("WindowsTitle",WINDOW_AUTOSIZE);
  • WINDOW_AUTOSIZE会自动根据图像大小,显示窗口大小,不能人为改变窗口大小;
  • imshow根据窗口名称显示图像到指定的窗口上去,第一个参数是窗口名称,第二个参数是Mat对象。

3-修改图像

  • cvtColor的功能是,把图像从一个彩色空间转换到另一个彩色空间,有三个参数:参数1表示原图像、参数2表示色彩空间转换后的图像、参数3表示源和目标的色彩空间,比如:COLOR_BGR2HLS、COLOR_BGR2GRAY等;
  • cvtColor(image,gray_image,COLOR_BGR2GRAY);

4-保存图像

  • 使用“cv::imwrite”保存图像文件到指定目录路径;
  • 只有8位、16位的PNG、JPG、Tiff文件格式而且是单通道或者是三通道的BGR的图像才可以通过这种方式保存;
  • 保存PNG格式的时候可以保存透明通道的图片;
  • 可以指定压缩参数;
  • 参数1是保存路径,参数2是保存目标。

#include <opencv2/opencv.hpp>
#include <iostream>
#include <math.h>
using namespace cv;
int main(int argc, char** argv) {
Mat src = imread("E:/vision/opcv3.1/181124-lesson1-pic/test.jpg");
if (src.empty()) {
printf("could not load image...n");
return -1;
}
namedWindow("test opencv setup", CV_WINDOW_AUTOSIZE);
imshow("test opencv setup", src);
namedWindow("output windows", CV_WINDOW_AUTOSIZE);
Mat output_image;
cvtColor(src, output_image, CV_BGR2HSV);
imshow("output windows", output_image);
imwrite("E:/vision/opcv3.1/181124-lesson1-pic/test1.jpg", output_image);
waitKey(0);
return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/527028.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php suse 安装mysql_SUSE Linux apache,Mysql,php,svn的安装

一 、安装apache1. tar -zxvf httpd-2.2.17.tar.gz2. cd httpd-2.2.173. sudo ./configure --prefix/space/soft/apache2 --enable-so --enable-dav --enable-dav-fs --enable-maintainer-mode --with-included-apr --enable-rewrite --enable-ssl --enable-proxy --enable-pro…

vue修改入口文件名字_webpack打包vue项目,可修改配置文件

问题&#xff1a;vue项目打包完成后&#xff0c;如需改变配置文件中的信息&#xff0c;比如域名修改(如下图config.js)&#xff0c;是不可能在配置文件中直接更改的&#xff0c;因为配置文件是前端写死的&#xff0c;这时只能手动更改项目中的配置&#xff0c;然后重新打包npm …

java 旋转图片_Java实现图片翻转以及任意角度旋转

最近几天在做一个项目&#xff0c;因为涉及到了图片(绝大部分都不是整图&#xff0c;是把一张张的大图切成小图&#xff0c;也就是Title)的翻转以及90旋转&#xff0c;弄得焦头烂额。在网上搜索好几天&#xff0c;发现用到的方法都是比较公式化的&#xff0c;对于只是在绘图的时…

java核心api_Java核心API需要掌握的程度..你做到了多少??

评论19 楼lovelh2010-09-10编程思想啊。。。。。。18 楼xiang.beyond2010-09-08A_Jane 写道把API烂熟于心又如何&#xff1f;难道一辈子去做程序员&#xff1f;关键需要掌握的还是处理事情的方法。API可以去查&#xff0c;编程的思想怎么去查&#xff1f;说得好 但话说回来这些…

java 排序api_用java api进行sort

Sun授权刊登本节中所描述的多态算法 (polymorphic algorithms)是由 JDK 所提供的可重复使用的功能性片段。它们均取自Collections类&#xff0c;并都采用静态方法(它的第一个参数是执行操作的 对象集)的形式。由Java平台所提供的绝大多数算法都操作于List对象&#xff0c;但有两…

java判断正整数正则_Java正则验证正整数的方法分析【测试可用】

本文实例讲述了Java正则验证正整数的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;package des;import java.util.regex.Matcher;import java.util.regex.Pattern;public class Num {/*** param args*/public static void main(String[] args) {// TODO Auto-ge…

java上溯造型_think-in-java/6.7 上溯造型.md at master · quanke/think-in-java · GitHub

6.7 上溯造型继承最值得注意的地方就是它没有为新类提供方法。继承是对新类和基础类之间的关系的一种表达。可这样总结该关系&#xff1a;“新类属于现有类的一种类型”。这种表达并不仅仅是对继承的一种形象化解释&#xff0c;继承是直接由语言提供支持的。作为一个例子&#…

java 官网下载jdk源码_openJDK之如何下载各个版本的openJDK源码

如果我们需要阅读openJDK的源码&#xff0c;那么需要下载&#xff0c;那么该去哪下载呢?现在JDK已经发展到版本10了&#xff0c;11已经处于计划中&#xff0c;如果需要特定版本的openJDK&#xff0c;它们的下载链接在哪呢?1.openJDK的项目图1 可以看到有openJDK6、openJDK7、…

java 这么获取农历_用JAVA查询中国农历年

用来查询农历年的代码&#xff0c;可能比较粗糙&#xff0c;希望不要太打击偶&#xff0c;哈哈。一&#xff0c;Console.java[用来获取控制台的输入]/*#()Console.java 20:40:25 2/2/2006控制台消息输入/输出。*/import java.io.*;import java.text.SimpleDateFormat;import ja…

java 最大分词算法_Java实现的最大匹配分词算法详解

本文实例讲述了java实现的最大匹配分词算法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;全文检索有两个重要的过程&#xff1a;1分词2倒排索引我们先看分词算法目前对中文分词有两个方向&#xff0c;其中一个是利用概率的思想对文章分词。 也就是如果两个字&#x…

java 集合迭代器_Java中的集合迭代器

集合的迭代器任何集合都有迭代器。任何集合类&#xff0c;都必须能以某种方式存取元素&#xff0c;否则这个集合容器就没有任何意义。迭代器&#xff0c;也是一种模式(也叫迭代器模式)。在java中它是一个对象&#xff0c;其目的是遍历并选中其中的每个元素&#xff0c;而使用者…

git关闭密码自动存储_项目在 git 里怎样合理的保存配置文件(服务器密码等敏感内容)...

办法其实很多&#xff0c;有两种较常用。第一种是配置文件不提交真实内容&#xff0c;只提交一个模板文件。每个开发者克隆之后按照自己的环境补完配置文件&#xff0c;这样自然而然就独立出来了(需更改文件名并忽略有效配置文件)。如果配置文件很大配置项很多&#xff0c;此法…

isfull mysql_Mysql8.0及以上版本,关于only_full_group_by的问题

mysql8.0及以上版本&#xff0c;关于only_full_group_by的问题&#xff1a;ERROR 1055 (42000): Expression #7 of SELECT list is not in GROUP BY clause and contains nonaggregated column postscan.verifyDelayLog.auditor which is not functionally dependent on column…

java jnotify_Jnotify文件监控的用法以及Jar文件导入的方法

简介Jnotiy, 支持动态监控(支持级联监控)文件夹和文件的jar包。在linux中&#xff0c;调用linux底层的jnotify服务。在windows中&#xff0c;需要添加附件的dll文件。因为通用的Maven仓库中没有此Jar文件&#xff0c;pom.xml文件需要如下配置&#xff1a;net.contentobjects.jn…

java 异常练习题_Java 异常(习题)

异常Key Point* 异常的概念和分类* 异常的产生和传递* 异常的处理* 自定义异常练习1. 填空Java 中所有的错误都继承自throwable类&#xff1b;在该类的子类中&#xff0c;Error类表示严重的底层错误&#xff0c;对于这类错误一般处理的方式是不要求我们对其处理Exception类表示…

mysql 半同步 主主_MySQL主从,半同步,主主复制

MySQL Replication我们知道&#xff0c;MySQL数据库的二进制日志记录着每一个明确或者潜在可能导致数据库发生改变的sql语句&#xff0c;因此我们可以基于二进制日志来实现mysql的主从一致。而我们在此提到的mysql的复制的简单过程就是&#xff1a;首先mysql的主服务器(Master)…

java local_java.time.LocalDateTime with()方法

java.time.LocalDateTime with()方法java.time.LocalDateTime.with(TemporalAdjuster adjuster)方法返回此日期时间的调整副本。1 语法public LocalDateTime with(TemporalAdjuster adjuster)2 参数adjuster&#xff1a;要使用的调整器&#xff0c;而不是null。3 返回值一个Loc…

java 数据队列_Java 数据结构 - 队列

Java 数据结构 - 队列我们今天要讲的数据结构是队列&#xff0c;比如 Java 线程池任务就是队列实现的。1. 什么是队列和栈一样&#xff0c;队列也是一种操作受限的线性结构。使用队列时&#xff0c;在一端插入元素&#xff0c;而在另一端删除元素。1.1 队列的主要特性队列中的数…

java中死锁_关于java中死锁的总结

关于死锁&#xff0c;估计很多程序员都碰到过&#xff0c;并且有时候这种情况出现之后的问题也不是非常好排查&#xff0c;下面整理的就是自己对死锁的认识&#xff0c;以及通过一个简单的例子来来接死锁的发生&#xff0c;自己是做python开发的&#xff0c;但是对于死锁的理解…

eclipse java的jvm匹配_eclipse设置jvm

Java虚拟机默认分配64M内存&#xff0c;如果你的应用比较大&#xff0c;超出64M内存&#xff0c;Java虚拟机就会抛出outOfMemoryError&#xff0c;并停止运行。不管是什么应用(Web应用、Application等)&#xff0c;只需要修改你的机器上的运行Java命令&#xff0c;在javaxxx命令…