import  cv2
import numpy as np#颜色色值
list = [[['红色'],[0,43,46],[10,255,255]],[['红色'],[156,43,46],[180,255,255]],[['蓝色'],[100,43,46],[124,255,255]],[['黄色'],[26,43,46],[34,255,255]],[['白色'],[0,0,221],[180,30,255]],[['黑色'],[0,0,0],[180,25,46]],[['橙色'],[11,43,46],[25,255,255]],[['绿色'],[35,43,46],[77,255,255]]]
Mouse_xy = ['','']
#导入图像
img = cv2.imread('www.jpg')
out = img.copy()
img = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)
v = cv2.Canny(img,100,500)#边缘识别
cv2.imshow('out',out)
#检测#圆形识别
c = cv2.HoughCircles(v,cv2.HOUGH_GRADIENT,dp=1, minDist=300, circles=255, param1=1300, param2=20, minRadius=50,maxRadius=0)
if c is not None:print('=', c)#c = np.round(c[0, :]).astype("int")c = c[0]print(c)#多边形检测
cnt,lib = cv2.findContours(v,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)def color():color1 = out.copy()def get_moues( a, x, y, f, p):Mouse_xy[0] = xMouse_xy[1] = ycolor2 = color1[y-25:y+25,x-25:x+25]cv2.imshow('color',color2)color, m, area = '', 0, 0for l in list:hsv = cv2.cvtColor(color2, cv2.COLOR_BGR2HSV)mask = cv2.inRange(hsv, np.array(l[1]), np.array(l[2]))cnts = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)[-2]for cnt in range(len(cnts)):area = cv2.contourArea(cnts[cnt])if area > m:color = l[0][0]m = areaprint('color=', color)Mouse = cv2.setMouseCallback('out', get_moues)def OUT():#绘制try:for (x,y,r) in c:x = int(x)y = int(y)r = int(r)print('x=', x, 'y=', y, 'r=', r)cv2.circle(out, (x, y), r, (0, 255, 0), 3)cv2.circle(out,(x,y),r-r+1,(255,255,0),3)cv2.putText(out,"circle",(x,y),cv2.FONT_HERSHEY_SIMPLEX,1,(255,0,0))except TypeError:print('没有圆')def OUT_S():i=1R = 0G = 0print (len(lib[0]))while i<len(lib[0]):c = 0.01 * cv2.arcLength(cnt[i], True)point = cv2.approxPolyDP(cnt[i], c, True)if len(point)<=6 and len(point)>2:cv2.drawContours(out,cnt,i,(R,G,255),2)#print('当前图形的顶点有',len(point))#print('point=',type(point))x,y = point[0][0]print('x=',x,'y=',y)if len(point) == 3:cv2.putText(out,'3',(x,y),cv2.FONT_HERSHEY_SIMPLEX,1,(255,0,0))if len(point) == 4:cv2.putText(out,'4',(x,y),cv2.FONT_HERSHEY_SIMPLEX,1,(255,0,0))if len(point) == 5:cv2.putText(out, '5', (x, y), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 0))if len(point) == 6:cv2.putText(out, '6', (x, y), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 0))i=i+1#cv2.imshow('out',out)OUT()
OUT_S()
color()
cv2.imshow('v',v)
cv2.imshow('out',out)
cv2.waitKey()

图形识别和简单的颜色识别相关推荐

  1. OPenCV4-颜色识别(一)调色板和简单的颜色识别

    OPenCV4-颜色识别(一)调色板和简单的颜色识别 使用 OPenCV4 做颜色识别十分简单.本文章使用 python 语言来实现一个调色板和简单的颜色识别. 1.调色板 绘制一个调色板对颜色识别非 ...

  2. python打开是什么颜色-python实现简单颜色识别程序

    本文实例为大家分享了python实现简单颜色识别程序的具体代码,供大家参考,具体内容如下 import numpy as np import cv2 font= cv2.FONT_HERSHEY_SI ...

  3. 【Opencv小项目 1】Opencv实现简单颜色识别

    参考 Opencv简单颜色识别 Youtube教学视频 BGR HSV颜色模型 步骤 一. BGR 和 HSV 颜色模型 BGR Model BGR模型表示三种颜色通道:红.绿.蓝,采用BGR模型的图 ...

  4. halcon颜色识别的两种简单方式

    颜色识别的两种简单方式: 1.单通道方式: 原理:通过不同颜色在灰度图中的阈值范围不同来区分颜色(理论上这种方式不推荐,但在一定情况下适用) 材料: halcon代码: dev_close_windo ...

  5. android opencv颜色识别,opencv学习(2)-简单颜色识别并跟踪

    本次来我们用opencv来实现识别跟踪蓝色物体并返回位置坐标的功能. 该功能分为两部分,识别颜色,跟踪颜色. 要想实现颜色的识别,我们要打开摄像头,读取捕获的图像.将图像的颜色通道转化为HSV,设置选 ...

  6. OpenCV形状颜色识别Java,Android

    纯java代码实现安卓的CV识别图形形状颜色 半年前开的帖,一直在忙 回来更新下. cv环境已经没有了,图就用以前的吧,代码我贴出来,凭记忆解释一下,算法实现的,我会说明逻辑 首先,环境是OpenCV ...

  7. 计算机基础设计的毕业论文图形,简单几何图形的识别和编辑 毕业论文 计算机应用基础.doc...

    摘要 本论文主要讲述了图像文件(bmp)文件格式下中简单图形的识别,主要是直线和圆的识别,这在工程图的识别和其他领域中都有很多的应用. [关键词]:图形识别 .图像处理.霍夫变换.单义域.多义域.de ...

  8. (机器视觉)Halcon下颜色识别与联合C#编程

    一.简介 在上一篇文章中写到了关于用Halcon做颜色识别的一个实验项目,在上一篇中是在Halcon环境中进行开发的,而在实际运用中,现场是不在Halcon中进行运行程序的,而且一些逻辑在Halcon ...

  9. Java简单验证码的识别

    1. 需求 因为项目需要,需要多次登录某网站抓取信息.所以学习了验证码的一些小知识.文章参考http://blog.csdn.net/problc/article/details/5794460的部分 ...

  10. rgb颜色查询工具_《我的眼睛–图灵识别》第三章:基础:颜色识别

    <我的眼睛–图灵识别>第三章:基础:颜色识别 七色彩虹 漂亮的彩虹是一种光学现象,使用三棱透镜进行折射就能看到七色彩虹.它分别由红.橙.黄.绿.青.蓝.紫7种颜色组成.色彩按字面含义上理解 ...

最新文章

  1. wxWidgets:wxURI类用法
  2. cadence 添加自己设计的pad方法
  3. FlinkX 如何读取和写入 Clickhouse?
  4. 15.确保“lessT“与“operator小于“具有相同的语义
  5. 澳大利亚 计算机 博士,澳大利亚迪肯大学招收计算机博士
  6. 在WildFly和OpenShift上的WebSocket聊天
  7. php css布局技巧,最全的CSS开发常用技巧
  8. 32添加组件_软件开发32条法则:经过实践检验的实用建议和经验教训
  9. ubuntu 16.04 x86_64中arm-none-linux-gnueabi-不起作用时的解决方案
  10. VMware Workstation 6.0 正式版公布
  11. 漫谈 Clustering (3): Gaussian Mixture Model
  12. php word 生成图片,PHP导出word文档的简单实现方法(可导出图片)-Go语言中文社区
  13. Intellij IDEA 神级插件
  14. php生成appid,请求认证密钥-AppID
  15. (踩坑日记)Win10下安装Ubuntu18.04(包括NIVIDIA驱动安装)+主题美化+设置多cuda切换+通过anaconda下安装tensorflow1.x-gpu以及pytorch-gpu
  16. dms mysql定义变量_数据管理DMS:自建MySQL数据库 全量SQL诊断功能发布啦!-阿里云开发者社区...
  17. 科普--电脑内存和固态硬盘谁更重要?
  18. 光纤收发器双模和单模有什么区别?如何区分单模、双模光纤收发器?
  19. VMware VAAI
  20. PHP 7.1 新特性

热门文章

  1. android微信分享成功后回调,微信分享成功后回调问题
  2. Python学生成绩计算和平均值
  3. (13.3)Latex参考文献引用及常规引用
  4. 超详细!联想小新700黑苹果双系统完整教程(1)
  5. APICloud 入门教程窗口篇
  6. 【三维GIS】Google Map/Google Earth三维模型提取
  7. 谷歌浏览器开发者模式
  8. 大麦网抢票python代码_damai_ticket
  9. UVa-11137 Ingenuous Cubrency
  10. 得分——UVa1585