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 图像轮廓相关推荐

  1. Java OpenCV 图像处理04.0 图像形状与文字绘制

    Java OpenCV 图像处理04.0 图像形状与文字绘制 Github 代碼地址 OpenCV 仿射变换.透视变换.旋转.平移.缩放 序號 名稱 方法 1 圖像 添加文字 Imgproc.putT ...

  2. Java OpenCV 图像处理34 图形图像 分水岭 watershed

    Java OpenCV 图像处理34 图形图像 分水岭 watershed package com.xu.opencv;import org.opencv.core.Core; import org. ...

  3. OpenCV图像处理技术之图像轮廓

     Fu Xianjun. All Rights Reserved.所有素材来自于小傅老师. 今天的学习内容俩有点多哦,大家拿起小板凳做好笔记呀! 任务一 轮廓的查找与绘制 案例一 查找轮廓 mode: ...

  4. java识别图片中的图形形状_基于Java+OpenCV技术对几何图像颜色与形状识别

    基于 Java+OpenCV 技术对几何图像颜色与形状识别 杨思阳 黄军 吴春秋 (黔东南民族职业技术学院,贵州 凯里 556000) [摘 要] 通过 Java 调用 OpenCV 视觉库实现几何图 ...

  5. OpenCV图像处理(0)——文件夹批量读取文件

    读取文件夹下所有图像.jpg string file_path = "H:\\图像处理模板\\c++\\CmakeBuildOpenCVPrj\\Pic\\PillingImages\\Si ...

  6. Java OpenCV 图像处理32.4 视频分析和对象跟踪 切换背景

    Java OpenCV 图像处理32.4 视频分析和对象跟踪 切换背景 方法 含义 解释 bitwise_and "与"操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制 ...

  7. Java OpenCV 图像处理30 视频分析和对象跟踪 视频读取

    Java OpenCV 图像处理30 视频分析和对象跟踪 视频读取 Java OpenCV-4.0.0 图像处理 视频分析和对象跟踪 视频读取 package com.xu.opencv.video; ...

  8. OpenCV学习笔记(九)——图像轮廓(下)

    <OpenCV轻松入门:面向Python>学习笔记(九) 1-3 查找并绘制轮廓.矩特性及Hu矩 4-5 轮廓拟合及凸包 6. 利用形状场景算法比较轮廓 6.1 计算形状场景距离 6.2 ...

  9. OpenCV图像处理(6)——轮廓标记

    在目标上绘制彩色轮廓 在目标轮廓上画最小外接圆 vector<vector<Point>> contours; vector<Vec4i> hierarcy; fi ...

最新文章

  1. 在目前大数据时代下,怎么能成为一名合格的数据分析师
  2. libevent在windows下使用步骤详解
  3. 京东云金山云合并确有其事,或拉开云计算兼并序幕
  4. 动态添加html元素绑定事件,关于javascript:jQuery如何将onclick事件绑定到动态添加的HTML元素...
  5. 使用openssh-clients的scp命令来传输文件
  6. 网页速度很慢优化方案:如何提高网页加载速度,提升网站加载速度
  7. 微信小程序,自动滑动到页面底部功能
  8. 001 Python中的变量和字符串
  9. SharedObject使用:在FluorineFx.net与Flex中使用共享对象维护在线用户列表实例
  10. 在idea配置jetty和创建(包、文件)javaWeb以及Servlet简单实现
  11. SpringBoot+Vue项目校园运动会管理系统
  12. 渗透测试神器Nmap使用教程
  13. 微型计算机接口技术论文,微机原理与接口技术课程论文
  14. 拼多多参谋:拼多多隐私号是什么意思?拼多多隐私号怎么查看真实号码?
  15. android apk 重新签名工具,安卓apk重新签名教程,快来定制自己的apk吧
  16. 浅谈ACL在校园网中的应用
  17. 在vue中使用marked解析markdown文件
  18. 真!一文搞定 HTTP 和 HTTPS
  19. filer.js: 一个 Unix 命令风格的 HTML 5 FileSystem API 封装 - V2EX
  20. owasp_OWASP数据工程师

热门文章

  1. php oracle 锁表,CSS_ORACLE 中关于锁表的问题,ORACLE里锁有以下几种模式:- phpStudy...
  2. 基于i.MX6UL的wifi音响设计
  3. vue.jsvue.js
  4. Android随笔小记 Permission
  5. 我家的家常菜之“家常焖鱼”
  6. 中国微电机行业需求规模与竞争格局研究报告2022版
  7. List对象sream()操作
  8. L1-055 谁是赢家 (10分)(C语言)
  9. warp()和wrapAll()区别
  10. 《童年》用计算机罗大佑,罗大佑的《童年》里,差了一只余秀华的水蜘蛛