opencv
opencv
dl_风禾
在读研究生
展开
-
opencv的安装
记得之前看博客的时候看过很多大佬写过opencv的各种安装方法,有使用网站先下载对应文件进行安装的,不过这个还像还得配置一些环境,也有一些大佬使用prompt命令进行安装的,在本人想要安装opencv时大体看了看大佬们的安装教程,感觉比较麻烦,对于爱偷懒的我来说,决定选择这最简单的方式,当然也是很快的方式,大概没有超过3分钟吧,就把一切都OK了废话不多说,具体如下 这里在看一个博主博客的时候说似乎是因为版本太高的问题所以不能安装到base(root)环境中,这一个我没有尝试,我是直接安装在了我平常使用的py原创 2022-07-01 11:20:05 · 5077 阅读 · 0 评论 -
11 绘制图形
# 绘制各种图形import cv2import numpy as np# 创建纯黑的背景图用来画图形img = np.zeros((480, 640, 3), np.uint8)# 划线# cv2.line(img, ptq, pt2, color , thickness, lineType, shift) shift是缩放比 可以不写cv2.line(img, (10, 20), (300,400), (0, 0, 255), 5, 4)cv2.line(img,...原创 2022-05-21 13:15:20 · 323 阅读 · 0 评论 -
10 颜色通道的分离与合并
上节知识回顾:本节学习内容# 图像的分割与融合import cv2import numpy as np# 高度和宽度以及通道数img = np.zeros((200, 200, 3), np.uint8)# 分割通道 opencv 是 BGRb, g, r = cv2.split(img)print('b:', b)# 修改一写颜色b[10:100, 10:100] = 255g[10:100, 10:100] = 255# 合并通道 merge中写的是原创 2022-05-17 21:33:30 · 216 阅读 · 0 评论 -
09 mat的深浅拷贝
首先 我们需要知道在python中,图片的保存类型以及他的数据结构个人理解:图片就是多维数组# opencv用mat这种数据结构来表示图片的# C++中是用mat来保存图片,Python中把mat转换成了numpy中的ndarray# Mat由header和data组成,header中记录了图片的维数,大小,数据类型等数据import cv2img = cv2.imread('fj.jpg')cv2.namedWindow('img', cv2.WINDOW_NORMAL)cv2.原创 2022-05-16 21:02:48 · 249 阅读 · 0 评论 -
08 颜色空间的转化
# cvtColor(img,colorspace):颜色转换的的关键API# cvtColor(img,colorspace):颜色转换的的关键APIimport cv2def callback(value): passcv2.namedWindow('color', cv2.WINDOW_NORMAL)cv2.resizeWindow('color', 640, 480)# 读取照片,Opencv读进来的图片默认是BGR的色彩空间img = cv2.imread('fj.原创 2022-05-15 20:27:24 · 116 阅读 · 0 评论 -
07 HSV和HSL和YUV
HSV(HSB)opencv用的最多的色彩空间就是HSVHSV颜色空间是根据颜色的直观特性由A. R. Smith在1978年创建的一种颜色空间, 也称六角锥体模型(Hexcone Model)。RGB和CMY颜色模型都是面向硬件的,而HSV(Hue Saturation Value)颜色模型是面向用户的。H:色相,用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,品红为300°;S:饱和原创 2022-05-11 22:04:08 · 762 阅读 · 0 评论 -
06 RGB和BGR颜色空间
最常见的色彩空间就是RGB,人眼也是基于RGB的色彩空间去分辨颜色的。OpenCV默认使用的是BGR。BGR和RGB色彩空间的区别在于图片在色彩通道上的排列顺序不同。在这点上numpy与opencv不同 使用matplotlib显示plt.imshow(img)也与opencv的imshow不同...原创 2022-05-11 14:37:08 · 2030 阅读 · 0 评论 -
05 trackbar用法
# createTrackbar(trackbarname, winname, value, count, onChange)创建TrackBar控件,value为trackbar的默认值,count为bar的最大值,最小值为0# getTrackbarPos(trackbarname, winname)获取TrackBar当前值# createTrackbar(trackbarname, winname, value, count, onChange)创建TrackBar控件,value为tr.原创 2022-05-11 14:27:42 · 637 阅读 · 0 评论 -
opencv-稠密光流图的产生
import cv2import numpy as np# cap = cv2.VideoCapture("../images/vtest.avi")cap = cv2.VideoCapture("save_video.avi")ret, frame1 = cap.read()# 对整幅图像计算prvs = cv2.cvtColor(frame1, cv2.COLOR_BGR2GRAY)hsv = np.zeros_like(frame1)hsv[..., 1] = 255whil.原创 2022-05-10 21:42:02 · 665 阅读 · 3 评论 -
opencv-保存视频操作
#代码完成的功能:对已存在的视频进行处理之后进行保存import cv2video = cv2.VideoCapture("v_CricketShot_g04_c01.avi") # 打开视频fourcc = cv2.VideoWriter_fourcc(*'MP4V') # 视频编解码器fps = video.get(cv2.CAP_PROP_FPS) # 帧数width, height = int(video.get(cv2.CAP_PROP_FRAME_WIDTH)), i.原创 2022-05-10 21:40:00 · 1438 阅读 · 0 评论 -
04控制鼠标
OpenCV允许我们对窗口上的鼠标动作做出响应·SetMouseCallback(winname,callback,userdata): 设置鼠标回调函数winname:窗口名字callback:自定义回调函数userdata:在设置回调函数时可以给函数callback传参,不传参数也可以设置为null·callback(exent,x,y,flags,userdata):回调函数必须包含这五个参数exent:鼠标点击事件,比如点左键,点右键或者中间键x,y:鼠标所在位置坐标flags:主.原创 2022-05-10 21:35:45 · 130 阅读 · 0 评论 -
01保存图片
# imwrite(path,img):使用imwrite保存图片import cv2cv2.namedWindow('img', cv2.WINDOW_NORMAL)cv2.resizeWindow('img', 320, 240)img = cv2.imread('./1.png')# 利用while循环优化退出逻辑while True: cv2.imshow('img', img) key = cv2.waitKey(0) if(key == ord('q'.原创 2022-04-26 12:18:40 · 180 阅读 · 0 评论 -
02读取摄像头和视频数据
视频其实本质上就是由一幅一幅的图片组成的# 打开视频文件import cv2vc = cv2.VideoCapture('./1.avi')# 打开摄像头vc = cv2.VideoCapture(0)# 检查是否正确打开if vc.isOpened(): # 读取视频的一帧 open, frame = vc.read()else: open = False# 打开视频文件import cv2cv2.namedWindow('video',.原创 2022-04-26 11:32:28 · 676 阅读 · 0 评论 -
03视频录制
1、VideoWriter:参数一位输出文件,参数二位多媒体文件格式(VideoWriter_fourcc),参数三位帧率,参数四位分辨率2、writer编码并写入缓存3、release 缓存内容写入磁盘,并释放资源import cv2cap = cv2.VideoVapture(0)fourcc = cv2.VideoWriter_fourcc(*'mp4v')# (640,480)表示摄像头拍视频,这个大小错搞了也不行# 主要是这个分辨率# fourcc解包操作,将数组一样的东原创 2022-04-26 11:12:06 · 163 阅读 · 0 评论