OpenCV java 图片处理,蒙太奇图片(13)
原文地址:
https://blog.csdn.net/Ricardo232525/article/details/78088772
素材准备:
我在网上下载了150张狗狗的图片,然后重命名为0-150.jpg
代码:
String filename = "D:\\svnp\\MyYan\\res\\drawable\\lena.png";Mat src = Imgcodecs.imread(filename);//加载需要被蒙太奇的图片,原图// 计算尺度大小这里是像素int rows = src.rows(); int cols = src.cols();// 50x50个像素作为新图片的大小网格,覆盖整个图片需要多少个网格int ColRows = (int) rows / 50;int ColCols = (int) cols / 50;//全覆盖ColRows = (ColRows * 50 < rows) ? ColRows + 1 : ColRows;ColCols = (ColCols * 50 < cols) ? ColCols + 1 : ColCols;//创建输出图片Mat output = new Mat(ColRows * 50, ColCols * 50, CvType.CV_8UC3, new Scalar(255, 255, 255));int colorN = 0;Mat picColor;Mat tmpS;//循环加载for (int i = 0; i < ColRows; ++i) {for (int j = 0; j < ColCols; ++j) {filename = "D:\\360MoveData\\Users\\lxn\\Desktop\\opencvtest\\";filename += colorN + ".jpg";picColor = Imgcodecs.imread(filename);// 将素材照片缩放到50*50Imgproc.resize(picColor, picColor, new Size(50, 50)); picColor.convertTo(picColor, CvType.CV_8UC3);//图片通道转换tmpS = new Mat(output, new Rect(j * 50, i * 50, 50, 50));//获取到output的一块网格 tmpS对应 但是output元素上的地址picColor.copyTo(tmpS);//用picColor的元素覆盖tmps元素colorN++;if (colorN >= 160) {colorN = 0;}}}for (int i = 1; i < rows; ++i) {for (int j = 1; j < cols; ++j) {// 像素RGB值修改double[] d = new double[3];d[0] = 0.382 * output.get(i, j)[0] + 0.618 * src.get(i, j)[0];d[1] = 0.382 * output.get(i, j)[1] + 0.618 * src.get(i, j)[1];d[2] = 0.382 * output.get(i, j)[2] + 0.618 * src.get(i, j)[2];output.put(i, j, d);}}output = new Mat(output, new Rect(0, 0, cols, rows));// 加载图片HighGui.imshow("原图", src);HighGui.imshow("蒙太奇", output);
// HighGui.imshow("矩形操作", dst2);
//HighGui.waitKey(0);
最终结果:
图片蒙太奇中用到了一些矩阵的操作比如说converTo和copyTo,以及resize
和矩阵对应的rgb元素的赋值
算是对我们前面学习到的opencv的一个简单的练习
希望对你有所帮助
OpenCV java 图片处理,蒙太奇图片(13)相关推荐
- OpenCV这么简单为啥不学——1.13图片冷白皮(美白)处理
OpenCV这么简单为啥不学--1.13图片冷白皮(美白)处理 目录 OpenCV这么简单为啥不学--1.13图片冷白皮(美白)处理 前言 分析 核心代码 颜色美白前后对比·20个单位 颜色美白前后对 ...
- java BASE64流 输出图片。
java BASE64流 输出图片. 亲测3个请求都可用,没有测试性能问题.仅供参考 BASE64Decoder Eclipsse 类可能引用不了解决方案链接:http://blog.csdn.net ...
- java 程序实现对图片的压缩生成缩略图并可设定长宽、尺寸压缩率、图片质量
转载自 java 程序实现对图片的压缩生成缩略图并可设定长宽.尺寸压缩率.图片质量 之前是在另一位高手的上传内容中学习到的,并将其代码根据我的需求进行了修改,参考位置:http://jiangpin ...
- OpenCV中的GUI特性 —— 图片与视频的读写和显示
OpenCV中的GUI特性--图片与视频的读写和显示 在这一部分我们将介绍在OpenCV中的GUI特性之图片和视频的读写和显示,包括图像的cv.imread / imshow / imwrite和Vi ...
- 搭建Android+QT+OpenCV环境,实现“单色图片着色”效果
OpenCV是我们大家非常熟悉的图像处理开源类库:在其新版本将原本在Contrib分库中的DNN模块融合到了主库中,并且更新了相应文档.这样我们就能够非常方便地利用OpenCV实现一些属于DeepLe ...
- Java套版生成动态图片
Java套版生成动态图片 , 适用于动态的名片生成 , 证件生成等 制作的图片底版 生成后的图片效果 package com.ssmf;/*** 套版生成实体类* @类 名 : CreateIma ...
- java图片管理系统_基于Java Web技术的图片管理系统的设计与实现.doc
基于Java Web技术的图片管理系统 的设计与实现 本科毕业设计 目 录 第1章 引言6 1.1 课题研究目的及意义6 1.2 课题研究的内容7 2.1 用户功能需求7 图片收藏数据库查询系统图片收 ...
- Java实现简单的图片浏览器
第一次写博客,不喜勿喷. 最近一个小师弟问我怎么用Java做图片浏览器,感觉好久没玩Java了,就自己动手做了一下. 学校的教程是用Swing来做界面的,所以这里也用这个来讲. 首先要做个大概的界面出 ...
- 编程语言Java 扫描识别条形码图片
编程语言Java 扫描识别条形码图片 1.条形码扫描识别的实现方法及步骤 本文以Java代码示例介绍如何来扫描和识别条形码图片.这里使用免费条码工具 Free Spire.Barcode for Ja ...
- java ofd文件转换图片
是根据开源项目写的: https://gitee.com/ofdrw/ofdrw?_from=gitee_search 该ofdrw工具可以转换pdf.图片等,本文章主要介绍ofd文件使用ofdrw转 ...
最新文章
- Android 解读Event和Main Log
- 深入理解Java:注解(Annotation)基本概念
- (chap5 web服务器) 数据转发之“代理”
- SVN 使用方法(228)
- 指令和伪指令和宏指令区别
- 程序员都用什么来记录知识_1年前的小五都用 Python 来做什么?
- 交叉渡线道岔规格_交叉渡线铁路道岔的型号及选用
- img标签里的value获取
- simuvex 符号分析形象解释
- 2-30hashlib模块讲解
- Adobe Acrobat Pro DC二次激活失败的解决途径
- 小米集团2021年Q4净利润45亿元 同比增长39.6%
- 【Spark】Spark的Kryo序列化
- chmod命令用法_Java开发人员必须掌握的Linux命令(一)
- 计算机管理系统论文参考文献,关于计算机系统管理的论文参考文献 计算机系统管理论文参考文献哪里找...
- vm虚拟服务器控制端,使用VMware虚拟机实现单主机双屏两人同时使用独立控制
- 内网穿透之HTTP穿透
- python论坛签到_Python 百度贴吧自动签到
- 番茄工作法(番茄钟时间管理)
- 求有多少个连续字串中所有的字母都出现了偶数次
热门文章
- eclipse failed to create the java virtual machine 问题图文解析
- Linux命令行文本处理工具
- JAVA 中equals()与==的区别
- JVM:StringTable
- 技术转管理的成功率不到70%!你必须先迈过这9道坎...10页PPT详解
- 2019阿里巴巴面试题+答案
- 互联网分层架构,为啥要前后端分离?
- Angular 变化检测详解
- 建议收藏这7个软件,自用良心推荐!
- 生态伙伴 | Canva上线飞书应用目录,帮你零门槛轻松做出大师级设计!