文章目录

  • 前言
  • 一、使用OpenCV打开摄像头
  • 二、使用OpenCV进行图像预处理

前言

有段时间没有更新了,最近主要在忙一个项目,用到了OpenCV,故想把一些常用代码在这里备份一下,一起学习。

环境:Pycharm+Python3.7


一、使用OpenCV打开摄像头

'''
版本:1.0
日期:2022/7/19
作者:Chen
功能:使用Opencv完成多张照片拍摄并保存至指定目录下
'''import cv2
if __name__ == '__main__':i = 1cap = cv2.VideoCapture(0, cv2.CAP_DSHOW)  # 打开摄像头ret = cap.set(3, 1280)  # 设置帧宽ret = cap.set(4, 720)  # 设置帧高while (1):ret, frame = cap.read()cv2.imshow("capture", frame)k = cv2.waitKey(1)if k == ord('s'):cv2.imwrite('./Resources/Pic/' + str(i) + '.jpg', frame)print('拍照成功,获得第', i, '张照片')i += 1elif k == ord("q"):breakcap.release()cv2.destroyAllWindows()

二、使用OpenCV进行图像预处理

将RGB转化为HSV空间,提取感兴趣的区域

import cv2 as cvclass Hsv_change:# hsv 调试def __init__(self):self.i1 = 0self.i2 = 0self.i3 = 0self.i4 = 0self.i5 = 0self.i6 = 0passdef onChange(self, a, b, hsv):if a == 1:self.i1 = belif a == 2:self.i2 = belif a == 3:self.i3 = belif a == 4:self.i4 = belif a == 5:self.i5 = belif a == 6:self.i6 = blowerb = (self.i1, self.i2, self.i3)upperb = (self.i4, self.i5, self.i6)mask = cv.inRange(hsv, lowerb, upperb)cv.imshow("mask", mask)print(self.i1, self.i2, self.i3, self.i4, self.i5, self.i6)## 调用次方法,传入文件路径def inRange_byFilePath(self, pathFile="Acquisition-1.jpg"):# img = cv2.imread("data2/test_aubo2.png")# img_copy=img.copy()dstImgggg = cv.imread(pathFile)img_copysize = cv.resize(dstImgggg, (int(dstImgggg.shape[1] / 2), int(dstImgggg.shape[0] / 2)))cv.imshow("img_copysize", img_copysize)hsv = cv.cvtColor(img_copysize, cv.COLOR_BGR2HSV)cv.imshow("hsv", hsv)cv.namedWindow("mask")cv.createTrackbar("h1", "mask", 0, 255, lambda a: self.onChange(1, a, hsv))cv.createTrackbar("s1", "mask", 0, 255, lambda a: self.onChange(2, a, hsv))cv.createTrackbar("v1", "mask", 0, 255, lambda a: self.onChange(3, a, hsv))cv.createTrackbar("h2", "mask", 0, 255, lambda a: self.onChange(4, a, hsv))cv.createTrackbar("s2", "mask", 0, 255, lambda a: self.onChange(5, a, hsv))cv.createTrackbar("v2", "mask", 0, 255, lambda a: self.onChange(6, a, hsv), )cv.waitKey(0)cv.destroyAllWindows()## 调用次方法,传入图片def inRange_byImage(self, dstImgggg):img_copysize = cv.resize(dstImgggg, (int(dstImgggg.shape[1] / 2), int(dstImgggg.shape[0] / 2)))cv.imshow("img_copysize", img_copysize)hsv = cv.cvtColor(img_copysize, cv.COLOR_BGR2HSV)cv.imshow("hsv", hsv)cv.namedWindow("mask")cv.createTrackbar("h1", "mask", 0, 255, lambda a: self.onChange(1, a, hsv))cv.createTrackbar("s1", "mask", 0, 255, lambda a: self.onChange(2, a, hsv))cv.createTrackbar("v1", "mask", 0, 255, lambda a: self.onChange(3, a, hsv))cv.createTrackbar("h2", "mask", 0, 255, lambda a: self.onChange(4, a, hsv))cv.createTrackbar("s2", "mask", 0, 255, lambda a: self.onChange(5, a, hsv))cv.createTrackbar("v2", "mask", 0, 255, lambda a: self.onChange(6, a, hsv), )cv.waitKey(0)cv.destroyAllWindows()if __name__ == '__main__':##使用:h = Hsv_change()h.inRange_byFilePath("./Resources/Pic/1.jpg")

OpenCV打开摄像头,RGB转HSV空间相关推荐

  1. 2021-01-07 Python Opencv转换颜色空间 RGB转为HSV

    Python Opencv转换颜色空间 RGB转为HSV 举个例子,通过摄像头把视频中的蓝色区域凸显出来,剩余的颜色均为黑色 import numpy as npcap = cv2.VideoCapt ...

  2. python opencv打开摄像头

    opencv打开摄像头 import cv2 cap = cv2.VideoCapture(0) while True:ret, frame = cap.read()frame = cv2.flip( ...

  3. AI 质检学习报告——实践篇——第三步:python利用OpenCV打开摄像头截图后实现图片识字

    AI 质检学习报告--实践篇--第一步:python利用OpenCV打开摄像头并截图 AI 质检学习报告--实践篇--第二步:实现图片识字 前边两篇实践已经分别实现了利用OpenCV打开摄像头并截图和 ...

  4. AI 质检学习报告——实践篇——第一步:python利用OpenCV打开摄像头并截图

    写在前边 想要做一个AI质检的项目,一点一点来,首先:python利用OpenCV打开摄像头并拍照. 效果 设摄像头像素不咋地,实际的产品肯定不会是这个像素,必须安排一个专业的. 实现代码 impor ...

  5. 如何使用 Opencv 打开摄像头获取图像信息?

    如何使用 Opencv 打开摄像头获取图像信息? Flow 遍历摄像头设备. 根据 VID 和 PID 打开特定的设备. 使用 Directshow 设置摄像头相关参数(曝光度.分辨率.亮度.饱和度. ...

  6. python opencv打开摄像头,截图保存

    python opencv打开摄像头,截图保存,学习结果如下: 使用python打开摄像头 import cv2 cap = cv2.VideoCapture(0) #设置摄像头 0是默认的摄像头 如 ...

  7. c++ opencv 彩色图rgb 转换hsv 再通道分离

    c++ opencv 彩色图rgb 转换hsv 再通道分离 // An highlighted block Mat img_hsv;cvtColor(img, img_hsv, COLOR_BGR2H ...

  8. OpenCv打开摄像头失败问题处理cap_msmf.cpp (677) MFVideoFormat_RGB24(codec not found)

    python opencv 打开摄像头,服务器挂掉重新启动问题 下面是代码 importing the required modules import cv2 import numpy as np c ...

  9. C++/Qt 使用OpenCV打开摄像头,旋转视频,计算fps

    C++/Qt 使用OpenCV打开摄像头,旋转视频,计算fps 设置摄像头参数 不要随意修改,同时也不一样会修改成功,需要根据实际摄像头的参数选择设置 /*设置摄像头参数 不要随意修改capture. ...

最新文章

  1. (C++)1009 Product of Polynomials
  2. oc45--多对象内存管理 优化
  3. 使用Git将我的最后一个X提交一起压缩
  4. 中国水处理行业深度监测及投资发展可行性分析报告2022-2027年新版
  5. 结构化道路上车辆自动驾驶中的雷达类型及安装位置
  6. mahout安装测试
  7. Java文件类String [] list(FilenameFilter fnf)方法,带示例
  8. 谈谈html5存储之IndexdDB
  9. Windows Azure 革新 – TFS集成(WAWS第2部分)
  10. oracle 删除用户和依赖,Oracle 12.2使用手动创建与注册依赖对象来执行联机重定义...
  11. MySQL MHA详解(一)——基本原理
  12. ElasticSearch学习(五):数据导入之Logstash
  13. 主数据管理项目建设经验分享
  14. 【2D detection】Deformable DETR论文阅读记录
  15. 在一张表里实现省市区镇村五级联动
  16. 基于JAVA校园爱心志愿系统计算机毕业设计源码+数据库+lw文档+系统+部署
  17. 移动通信基础(14)均衡
  18. 拼多多登陆 JS 密码字段加密解析
  19. Oracle使用纪要
  20. 我们不想清楚Web2.0的得失成败,我们就无法成功开启Web3.0

热门文章

  1. .NET5.0 初始
  2. Uip WebServer 实现
  3. 《VESR-Net: The Winning Solution to Youku Video Enhancement and Super-Resolution Challenge》论文阅读
  4. PLC脆弱性评估及相应解决方案
  5. SuperMap iMobile for Android培训资料
  6. 汽车MEMS传感器应用及发展
  7. 网络安全——无线局域网安全技术——802.11i
  8. 快速从入门到精通!成都java培训机构比较
  9. 实时即未来,车联网项目之电子围栏分析【六】
  10. 公鸡一个五块钱,母鸡一个三块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,使用穷举法求公鸡、母鸡、小鸡各多少只。