当前位置: 首页 > 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.zskr.cn/news/9156.html

相关文章:

  • PyQt数字转大写金额GUI程序开发及财务规范实现
  • 从零开始训练推理模型:GRPO+Unsloth改造Qwen实战指南
  • 爱锋拍照工具 - 隐私政策
  • 周计划+总结
  • C#通讯之网络通讯 TCP UDP - 详解
  • 第03周 面向对象入门2与类的识别
  • 完整教程:启用GPU对模型进行推理,安装cuda toolkit cuDNN 9
  • 25秋周总结3
  • 不会的好题总结
  • 详细介绍:体验感满满—万物皆可插入
  • 支付宝的对账单下载
  • ABC 424 D-F 题解
  • 探索 CSS 过渡:打造流畅网页交互体验 - 教程
  • 详细介绍:项目首次推送到GitHub、指令步骤(下)
  • 安卓免费词典,查字查词机制超全
  • 计算多项式的值
  • 安装windows11跳过账户登录
  • AudioRelay —— 让电脑使用手机的麦克风和扬声器
  • 【小白学算法】矩阵快速幂超详细解析+例题[HDU - 2802]
  • go语言数组的方法
  • 【C++】类与结构体的区别
  • Linux云端服务器上部署Spring Boot应用
  • 实用指南:Docker部署Drawnix开源白板工具
  • 在CentOS上配置SVN至Web目录的自动同步
  • HDFS 纠删码技术(Erasure Coding, EC)详解 - 指南
  • SQL小贴式: 用NOT EXISTS 而不是 NOT IN !!!
  • 手撕大模型|FlashAttention 原理及代码解析
  • Unity Volume Rendering
  • JMX与RMI
  • 深入解析:线程安全相关的注解