基于 Java+OpenCV 技术对几何图像颜色与形状识别 杨思阳 黄军 吴春秋 (黔东南民族职业技术学院,贵州 凯里 556000) [摘 要] 通过 Java 调用 OpenCV 视觉库实现几何图像颜色、形状识别。 将图像转化为 HSV 颜色空间,按各颜色 H、S、V 的取值范围分割图像,对分割图像进行滤波处理、灰度处理、二值化、轮廓提取、去除干扰轮廓、轮廓形状拟合、获取轮廓凸点个数、用凸点距离判断形状,从而实现对各种颜色的三角形、圆、矩形、正方形、多边形等几何图像颜色、形状的识别。 该方法可应用于现实生活中,例如识别交通信号灯和信号转向灯等有颜色和形状识别的领域。 [关键词] OpenCV;颜色分离;形状拟合 中图分类号:TP391.41 文献标识码:A 文章编号:1008-6609(2019)01-0079-04 1 引言 随着社会科学技术的发展进步,特别是近几年计算机软硬件技术的高速发展和计算机视觉的广泛应用,对图像处理的要求越来越高。通过翻阅大量文献发现对彩色几何图像的识别,要么用 C、C++ 语言,要么用 Python、matlab 实现,而采用 Java 编程实现的较少。同时,在 Java 实现几何图像识别算法中,大多采用 R、G、B 三原基础色进行图像识别,而用 HSV 颜色空间进行颜色识别的较少,且对颜色、形状识别率也不是很高。 本文提出用 Java 编程调用 OpenCV 视觉库实现对 7 种常见颜色几何图像的识别。首先将图像从 BGR 转化为 HSV 颜色空间图像,并用 OpenCV 中算法对图像颜色分离,然后分别对各种颜色图像进行轮廓提取、形状拟合,从而实现对几何图像形状和颜色的识别,该方法可借鉴用于现实生活中有颜色和形状识别的领域。 2 导入 OpenCV 的 Java 包 在 OpenCV 官网下载 OpenCV3.0.0,解压后,在已建项目的 Eclipse 开发环境里将 OpenCV 解压文件里的 build\Java 文件,根据电脑系统选择相对应的 OpenCV-300 库导入现有项目,即可在项目中正常调用 OpenCV-Java 库。本文电脑系统为 32 位系统,选择 OpenCV-x86 包导入。 3 颜色图像分割 3.1 缩小图像因在后面需要处理图像像素值,为了提高处理速度,将图 像缩小。用 OpenCV-Java 库里的函数 Imgproc.resize(src,dst, dsize)缩小图片,src 为原图,dst 为输出图像。 3.2 转化为 HSV 颜色空间 OpenCV 默认处理的图片是 BGR 颜色空间,而现多为RGB 型图像。首先将 RGB 转为 BGR,再将 BGR 转为 HSV。因为 BGR、RGB 都是红、绿、蓝三原色组合成的颜色图形,如果需对三原色外的其他颜色识别,用 R、G、B 值实现难度较大,识别率不高。 而用 HSV 中的 H、S、V 值识别图像颜色较为容易,且各颜色的 H、S、V 取值范围也比较容易划分。在 HSV 颜色空间中,各颜色三个分量 H、S、V 取值范围如图 1。 用函数 Imgproc.cvtColor (imageResized, HSVImg, Imgproc.COLOR_RGB2BGR)将 RGB 转为 BGR。用函数 Imgproc.cvtColor(imageResized, HSVImg, Imgproc.COL-OR_BGR2HSV)将 BGR 转为 HSV。imageResized 为输入图像, HSVImg 为输出图像。 3.3 获取图像像素点

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

  1. Java简单记事本设计实验报告_基于JAVA的记事本设计报告.doc

    基于JAVA的记事本设计报告 华北科技学院计算机系综合性实验报告 PAGE 第 PAGE 11 页 XX学校计算机系综合性实验 实 验 报 告 课程名称 Java程序设计 实验学期 至 学年 第 学期 ...

  2. java程序报告门禁系统_基于JAVA的门禁管理系统(含源文件).doc

    基于JAVA的门禁管理系统 学 生 姓 名: 学 院: 专 业: 班 级: 学 号: 指 导 教 师: 完 成 日 期: 摘 要 随着社会经济和科技的发展,IC卡技术已广泛地应用于各种行业,特别是公共 ...

  3. java动漫网站开题报告_基于java的校园论坛网站的开发与设计开题报告.doc

    基于java的校园论坛网站的开发与设计开题报告 太 原 科 技 大 学 华 科 学 院 毕业设计开题报告 学 生 姓 名:学 号:学 院.系:专 业:论 文 题 目:指导教师: 2015 年 3 月1 ...

  4. 用java写的教职工信息管理系统_基于Java的教师信息管理系统的设计与实现论文.doc...

    基于Java的教师信息管理系统的设计与实现论文 职场大变样社区():下载毕业设计成品 全套资料,全部50元以下 毕业设计(论文)任务书 第1页 毕业设计(论文)题目: 基于java的教师信息管理系统的 ...

  5. java动态数组的实现的_基于Java的动态数组分析与实现

    动态数组 概念 基于Java提供的静态数组封装自己的动态数组,动态数组涉及的组成部分如下图所示. 组成部分解读data:静态数组,通过泛型支持多种类型的元素:private E[] data;. si ...

  6. java 金数据推送数据_基于JAVA的黄金数据接口调用代码实例

    代码描述:基于JAVA的黄金数据接口调用代码实例 接口地址:http://www.juhe.cn/docs/api/id/29 1.[代码][Java]代码 import java.io.Buffer ...

  7. 基于java的oa协同办公系统_基于JAVA的OA系统的制作毕业设计论文

    <基于JAVA的OA系统的制作毕业设计论文.doc>由会员分享,可免费在线阅读全文,更多与<基于JAVA的OA系统的制作毕业设计论文>相关文档资源请在帮帮文库(www.woc8 ...

  8. java用代码实现星期菜谱_基于JAVA的菜谱大全接口调用代码实例

    基于JAVA的菜谱大全接口调用代码实例 代码描述:基于JA V A的菜谱大全接口调用代码实例 接口平台:聚合数据 import java.io.BufferedReader; import java. ...

  9. java拼图游戏设计文档_基于JAVA的拼图游戏的设计与实现(含录像)

    基于JAVA的拼图游戏的设计与实现(含录像)(任务书,开题报告,中期检查表,外文翻译,毕业论文15500字,程序代码,答辩PPT,答辩视频录像) 摘  要 在我们日常生活中,有很多的益智类游戏,如七巧 ...

最新文章

  1. [转载]开源网管软件对比 - Nagios OpenNMS Zenoss
  2. 东平县农民丰收节-农业大健康·万祥军:功能性谋定生态品牌
  3. 《Linux内核分析》课程总结
  4. 今天试了一下iscroll
  5. empty()、isset()、is_null()的区别
  6. English Voice of Way Back Into Love
  7. 再学 GDI+[22]: TGPLinearGradientBrush - 之一: TLinearGradientMode
  8. 树的点分治(HDU 5977 2016ICPC大连 G: Garden of Eden)
  9. 2.同步(Synchronization)
  10. 在文件保存中 os.getcwd() os.listdir() os.makedirs() os.mkdir() xx.join() ... 等函数 的使用介绍...
  11. 局域网游戏联机原理解析
  12. 【Python技巧】字典
  13. S老师 Top-Down RPG Starter Kit 学习
  14. 前端如何实现一键截图功能?
  15. 计算广告笔记05-搜索广告与竞价广告
  16. js和jQury实现Aajx
  17. 基于arduino和openmv的智能小车设计制作流程
  18. Anemometer适应新版pt-query-digest需要的调整
  19. java学习日记-接口
  20. 【Kevin Learn QMUI】-->qmui 知识梳理

热门文章

  1. 原生JS 获取自定义data-xxx 数据
  2. 打印机竖线不直_七夕小子_新浪博客
  3. 新版Maixhub部署(V831与K210)
  4. .NET沉思集 ASP.NET入门猜想
  5. HMAC简介 Wik部分i翻译
  6. python可视化---axhline()函数
  7. 力扣538.把二叉搜索树转换为累加树
  8. i8042错误linux7,I8042.c: No controller found
  9. Lake Shore—325 型低温温度控制器
  10. (附源码)ssm圆梦小学的英语线上考试系统 毕业设计141505