当前位置: 首页 > news >正文

Chapter 7 Color Detection

img = cv2.imread('images/lambo.png')def stackImages(scale, imgArray):rows = len(imgArray)cols = len(imgArray[0])rowsAvailable = isinstance(imgArray[0], list)width = imgArray[0][0].shape[1]height = imgArray[0][0].shape[0]if rowsAvailable:for x in range ( 0, rows):for y in range(0, cols):if imgArray[x][y].shape[:2] == imgArray[0][0].shape [:2]:imgArray[x][y] = cv2.resize(imgArray[x][y], (0, 0), None, scale, scale)else:imgArray[x][y] = cv2.resize(imgArray[x][y], (imgArray[0][0].shape[1], imgArray[0][0].shape[0]), None, scale, scale)if len(imgArray[x][y].shape) == 2: imgArray[x][y]= cv2.cvtColor( imgArray[x][y], cv2.COLOR_GRAY2BGR)imageBlank = np.zeros((height, width, 3), np.uint8)hor = [imageBlank]*rowshor_con = [imageBlank]*rowsfor x in range(0, rows):hor[x] = np.hstack(imgArray[x])ver = np.vstack(hor)else:for x in range(0, rows):if imgArray[x].shape[:2] == imgArray[0].shape[:2]:imgArray[x] = cv2.resize(imgArray[x], (0, 0), None, scale, scale)else:imgArray[x] = cv2.resize(imgArray[x], (imgArray[0].shape[1], imgArray[0].shape[0]), None,scale, scale)if len(imgArray[x].shape) == 2: imgArray[x] = cv2.cvtColor(imgArray[x], cv2.COLOR_GRAY2BGR)hor= np.hstack(imgArray)ver = horreturn vercv2.namedWindow("TrackBars")
cv2.resizeWindow("TrackBars", 640, 240)
cv2.createTrackbar('Hue Min', "TrackBars", 2, 179, lambda x:x)
cv2.createTrackbar('Hue Max', "TrackBars", 18, 180, lambda x:x)
cv2.createTrackbar('Sat Min', "TrackBars", 0, 255, lambda x:x)
cv2.createTrackbar('Sat Max', "TrackBars", 255, 255, lambda x:x)
cv2.createTrackbar('Value Min', "TrackBars", 51, 255, lambda x:x)
cv2.createTrackbar('Value Max', "TrackBars", 255, 255, lambda x:x)# 转成HSV
imgHSV = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)while True:h_min = cv2.getTrackbarPos('Hue Min', "TrackBars")h_max = cv2.getTrackbarPos('Hue Max', "TrackBars")sat_min = cv2.getTrackbarPos('Sat Min', "TrackBars")sat_max = cv2.getTrackbarPos('Sat Max', "TrackBars")value_min = cv2.getTrackbarPos('Value Min', "TrackBars")value_max = cv2.getTrackbarPos('Value Max', "TrackBars")# 重点lower = np.array([h_min, sat_min, value_min])upper = np.array([h_max, sat_max, value_max])mask = cv2.inRange(imgHSV, lower, upper)# 想要识别的弄成白色,其他黑色print(h_min, h_max, sat_min, sat_max, value_min, value_max)# 就只留下mask的部分imgResult = cv2.bitwise_and(img, img, mask=mask)# cv2.imshow('mask', mask)imgStack = stackImages(0.5, [img, imgHSV, imgResult])cv2.imshow('imgStack', imgStack)cv2.waitKey(1)

 

image  image

 

image      image

 

 

image

 

http://www.jsqmd.com/news/1119/

相关文章:

  • 《原子习惯》-读书笔记7
  • PyQt数字转大写金额GUI程序开发及财务规范实现
  • 第3周预习作业
  • 01自我介绍加规划
  • 《原子习惯》-读书笔记6
  • Java LTS版本进化秀:从8到21的欢乐升级之旅
  • 201912_EASER
  • 搜索百科(3):Elasticsearch — 搜索界的“流量明星”
  • 打印机漏洞、匿名协议与AWS安全:一周技术热点解析
  • 从零开始训练推理模型:GRPO+Unsloth改造Qwen实战指南
  • ALLinSSL,开源免费的SSL证书自动化管理平台
  • 《原子习惯》-读书笔记5
  • 03-袁东申论-概括原因
  • 实现双向循环链表 - 详解
  • SpringBoot控制层接收参数处理、Logback日志入门和使用 - 实践
  • 2025-09-21 网站前几分钟还运行的好好地,几分钟后查看居然显示文件无法加载,访问首页提示无法访问此网站??!==ssl证书过期+域名解析失效
  • 20231321王曦轶《密码系统设计》第二周
  • 爱锋拍照工具 - 隐私政策
  • 周计划+总结
  • C#通讯之网络通讯 TCP UDP - 详解
  • [POI 2004] MOS
  • 第03周 面向对象入门2与类的识别
  • 完整教程:启用GPU对模型进行推理,安装cuda toolkit cuDNN 9
  • 25秋周总结3
  • R ggplot2学习Nature子刊一张图,换数据即可用! - 指南
  • AI 在教育领域的落地困境:个性化教学与资料隐私的平衡之道
  • 2025-06-10.购买联想thinkpad 16p
  • 不会的好题总结
  • 浏览器兼容性问题全解:CSS 前缀、Grid/Flex 布局兼容专业的方案与跨浏览器调试技巧
  • 深入解析:大数据领域数据产品的深度学习应用