Java OpenCV 图像处理23.0 图像轮廓
Java OpenCV 图像处理23.0 图像轮廓
Java OpenCV-4.0.0 图像轮廓
输入图像转为灰度图像cvtColor
使用Canny进行边缘提取,得到二值图像
使用findContours寻找轮廓
使用drawContours绘制轮廓
package com.xu.image;import java.util.ArrayList;
import java.util.List;import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.MatOfPoint;
import org.opencv.core.Scalar;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;/** * * @Title: Image.java * @Description: OpenCV-4.0.0 测试文件* @Package com.xu.test * @author: xuhyacinth * @date: 2019年12月10日20:17:11* @version: V-1.0.0 * @Copyright: 2019 xuhyacinth**/
public class Image {static {System.loadLibrary(Core.NATIVE_LIBRARY_NAME);}public static void main(String[] args) {contour();}/*** OpenCV-4.0.0 轮廓发现** @return: void* @date: 2019年12月10日20:17:11*/public static void contour() {//1 获取原图Mat src = Imgcodecs.imread("C:\\Users\\xuhya\\Pictures\\qq.jpg");//2 图片灰度化Mat gary = new Mat();Imgproc.cvtColor(src, gary, Imgproc.COLOR_RGB2GRAY);//3 图像边缘处理Mat edges = new Mat();Imgproc.Canny(gary, edges, 200, 500, 3, false);//4 发现轮廓List<MatOfPoint> list = new ArrayList<MatOfPoint>();Mat hierarchy = new Mat();Imgproc.findContours(edges, list, hierarchy, Imgproc.RETR_TREE, Imgproc.CHAIN_APPROX_SIMPLE);//5 绘制轮廓for (int i = 0, len = list.size(); i < len; i++) {Imgproc.drawContours(src, list, i, new Scalar(0, 255, 0), 1, Imgproc.LINE_AA);}HighGui.imshow("111", src);HighGui.waitKey(0);}}
package com.xu.opencv;import java.util.ArrayList;
import java.util.List;import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.MatOfPoint;
import org.opencv.core.Point;
import org.opencv.core.Rect;
import org.opencv.core.Scalar;
import org.opencv.core.Size;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;/*** @Title: Image.java* @Description: OpenCV-4.0.0 测试文件* @Package com.xu.test* @author: xuhyacinth* @date: 2022年1月19日14点43分* @version: V-1.0.0* @Copyright: 2019 xuhyacinth*/
public class Image {static {System.loadLibrary(Core.NATIVE_LIBRARY_NAME);}public static void main(String[] args) {contour();}/*** OpenCV-4.0.0 轮廓发现** @return: void* @date: 2019年12月10日20:17:11*/public static void contour() {// 1 获取原图Mat src = Imgcodecs.imread("D:\\OneDrive\\桌面\\1.png", Imgcodecs.IMREAD_ANYCOLOR);// 2 图片灰度化Mat gary = new Mat();Imgproc.cvtColor(src, gary, Imgproc.COLOR_RGB2GRAY);// 3 图像边缘处理Mat edges = new Mat();Imgproc.Canny(gary, edges, 200, 500, 3, false);// 4 发现轮廓List<MatOfPoint> contours = new ArrayList<>();Mat hierarchy = new Mat(edges.size(), CvType.CV_32S);Imgproc.findContours(edges, contours, hierarchy, Imgproc.RETR_TREE, Imgproc.CHAIN_APPROX_SIMPLE);// 5 绘制轮廓for (int i = 0, len = contours.size(); i < len; i++) {Rect rect = Imgproc.boundingRect(contours.get(i));Imgproc.rectangle(src, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), new Scalar(0, 0, 255), 1, Imgproc.LINE_AA);}// 6 缩小图片Imgproc.resize(src, src, new Size(src.width() / 2, src.height() / 2));// 7 显示结果HighGui.imshow("结果", src);HighGui.waitKey(0);HighGui.destroyAllWindows();}}
Java OpenCV 图像处理23.0 图像轮廓相关推荐
- Java OpenCV 图像处理04.0 图像形状与文字绘制
Java OpenCV 图像处理04.0 图像形状与文字绘制 Github 代碼地址 OpenCV 仿射变换.透视变换.旋转.平移.缩放 序號 名稱 方法 1 圖像 添加文字 Imgproc.putT ...
- Java OpenCV 图像处理34 图形图像 分水岭 watershed
Java OpenCV 图像处理34 图形图像 分水岭 watershed package com.xu.opencv;import org.opencv.core.Core; import org. ...
- OpenCV图像处理技术之图像轮廓
Fu Xianjun. All Rights Reserved.所有素材来自于小傅老师. 今天的学习内容俩有点多哦,大家拿起小板凳做好笔记呀! 任务一 轮廓的查找与绘制 案例一 查找轮廓 mode: ...
- java识别图片中的图形形状_基于Java+OpenCV技术对几何图像颜色与形状识别
基于 Java+OpenCV 技术对几何图像颜色与形状识别 杨思阳 黄军 吴春秋 (黔东南民族职业技术学院,贵州 凯里 556000) [摘 要] 通过 Java 调用 OpenCV 视觉库实现几何图 ...
- OpenCV图像处理(0)——文件夹批量读取文件
读取文件夹下所有图像.jpg string file_path = "H:\\图像处理模板\\c++\\CmakeBuildOpenCVPrj\\Pic\\PillingImages\\Si ...
- Java OpenCV 图像处理32.4 视频分析和对象跟踪 切换背景
Java OpenCV 图像处理32.4 视频分析和对象跟踪 切换背景 方法 含义 解释 bitwise_and "与"操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制 ...
- Java OpenCV 图像处理30 视频分析和对象跟踪 视频读取
Java OpenCV 图像处理30 视频分析和对象跟踪 视频读取 Java OpenCV-4.0.0 图像处理 视频分析和对象跟踪 视频读取 package com.xu.opencv.video; ...
- OpenCV学习笔记(九)——图像轮廓(下)
<OpenCV轻松入门:面向Python>学习笔记(九) 1-3 查找并绘制轮廓.矩特性及Hu矩 4-5 轮廓拟合及凸包 6. 利用形状场景算法比较轮廓 6.1 计算形状场景距离 6.2 ...
- OpenCV图像处理(6)——轮廓标记
在目标上绘制彩色轮廓 在目标轮廓上画最小外接圆 vector<vector<Point>> contours; vector<Vec4i> hierarcy; fi ...
最新文章
- 在目前大数据时代下,怎么能成为一名合格的数据分析师
- libevent在windows下使用步骤详解
- 京东云金山云合并确有其事,或拉开云计算兼并序幕
- 动态添加html元素绑定事件,关于javascript:jQuery如何将onclick事件绑定到动态添加的HTML元素...
- 使用openssh-clients的scp命令来传输文件
- 网页速度很慢优化方案:如何提高网页加载速度,提升网站加载速度
- 微信小程序,自动滑动到页面底部功能
- 001 Python中的变量和字符串
- SharedObject使用:在FluorineFx.net与Flex中使用共享对象维护在线用户列表实例
- 在idea配置jetty和创建(包、文件)javaWeb以及Servlet简单实现
- SpringBoot+Vue项目校园运动会管理系统
- 渗透测试神器Nmap使用教程
- 微型计算机接口技术论文,微机原理与接口技术课程论文
- 拼多多参谋:拼多多隐私号是什么意思?拼多多隐私号怎么查看真实号码?
- android apk 重新签名工具,安卓apk重新签名教程,快来定制自己的apk吧
- 浅谈ACL在校园网中的应用
- 在vue中使用marked解析markdown文件
- 真!一文搞定 HTTP 和 HTTPS
- filer.js: 一个 Unix 命令风格的 HTML 5 FileSystem API 封装 - V2EX
- owasp_OWASP数据工程师
热门文章
- php oracle 锁表,CSS_ORACLE 中关于锁表的问题,ORACLE里锁有以下几种模式:- phpStudy...
- 基于i.MX6UL的wifi音响设计
- vue.jsvue.js
- Android随笔小记 Permission
- 我家的家常菜之“家常焖鱼”
- 中国微电机行业需求规模与竞争格局研究报告2022版
- List对象sream()操作
- L1-055 谁是赢家 (10分)(C语言)
- warp()和wrapAll()区别
- 《童年》用计算机罗大佑,罗大佑的《童年》里,差了一只余秀华的水蜘蛛