首页 > 其他分享 >【opencv】【第一玩】坤坤的篮球

【opencv】【第一玩】坤坤的篮球

时间:2022-12-14 16:33:23浏览次数:55  
标签:第一 img opening 篮球 cv2 blurred opencv 图像


今天第一次装了opencv,强大的图像处理库,于是我们先上安装过程

我是在conda环境下安装的,选择自己的python环境

conda activate pytorch

然后执行下面安装opencv,默认是最新版本。

pip install opencv-python
pip install opencv-contrib-python

安装完毕后
进行检查安装是否成功

(pytorch) C:\Users\j00431635>python
Python 3.8.5 (default, Sep 3 2020, 21:29:08) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'4.5.5'
>>>

能成功输出cv的版本即可成功。

然后下面我们基于已有的一些图像处理的知识做一些好玩的练练手,代码是抄袭的,但是每一个步骤我们需要看懂,每个个运算函数过程后面的数学原理和图像处理原理我们得搞明白,这样方便我们以后使用。

参考自:​​https://zhuanlan.zhihu.com/p/62703610​

import cv2

# cap = cv2.VideoCapture('D:/KK_Movies/kk 2022-01-23 18-27-04.mp4')
cap = cv2.VideoCapture('D:/KK_Movies/kk 2022-01-23 18-21-21.mp4')

while True:
ret, frame = cap.read() # 获得图像的每一帧
if frame is None:
break

# 图像灰度化
img_gray = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY)

# 高斯模糊
img_blurred = cv2.GaussianBlur(img_gray, (3, 3), 0)

# 图像二值化,采用自适应二值化
img_threshold1 = cv2.adaptiveThreshold(img_blurred, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 5, 2)

# 再次对二值化图像进行模糊
img_threshold1_blurred = cv2.GaussianBlur(img_threshold1, (3, 3), 0)

# 再次进行二值化
_, img_threshold2 = cv2.threshold(img_threshold1_blurred, 200, 255, cv2.THRESH_BINARY)

# 对图像进行开区间操作,其实就是膨胀和腐蚀操作
kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(3, 3)) # 得到一个3*3的核
# 因此当我们对一个图像先腐蚀再膨胀的时候,一些小的区块就会由于腐蚀而消失,再膨胀回来的时候大块区域的边线的宽度没有发生变化,这样就起到了消除小的噪点的效果。图像先腐蚀再膨胀的操作就叫做开运算。
img_opening = cv2.bitwise_not(cv2.morphologyEx(cv2.bitwise_not(img_threshold2), cv2.MORPH_OPEN, kernel))

# 再次对二值化图像进行模糊
img_opening_blurred = cv2.GaussianBlur(img_opening, (3, 3), 0)

# 最后展示代码
cv2.imshow('img_opening_blurred', img_opening_blurred)

# 按下q键就退出
if cv2.waitKey(40) & 0xFF == ord('q'):
break

# 程序退出后,就毁灭窗口。
cv2.destroyAllWindows()

下面看下试验效果

【opencv】【第一玩】坤坤的篮球_python


【opencv】【第一玩】坤坤的篮球_二值化_02


标签:第一,img,opening,篮球,cv2,blurred,opencv,图像
From: https://blog.51cto.com/u_12419595/5937528

相关文章

  • 【opencv学习】【图像的数值计算操作】
    importcv2#展示图像,封装成函数defcv_show_image(name,img):cv2.imshow(name,img)cv2.waitKey(0)#等待时间,单位是毫秒,0代表任意键终止cv2.destroyAllWin......
  • 第一篇博客
    很奇怪,最近每天都是“状态拉满”的,晚饭过后会很困很累,可到了该上床的时间,却又精神起来了。“你又不是作家,锻炼表达就先保证完成,别苛求质量。”有道理,答应12.10要完成的......
  • 关于opencv从图中画圈的思考
    读取图像;对图像进行操作;识别球门;识别途中白色区域;从图像上一行一行的扫描识别像素BGR值为(0,0,255);直到出现有白色区域时开始记录数据,可以将第一次扫描到点所在的第一行下十行......
  • centos7 redis5.0以前版本 集群部署示例 - 第一篇
    简言1.redis5.0版本以前的集群部署是使用ruby脚本完成的,ruby脚本的安装少略麻烦(主要原因是系统自动安装的版本太低,无法部署集群,必须手动安装)2.redis5.0版本以后的集群部署......
  • 我做了第一个ChatGPT .net api聊天库
    最近这个ChatGPT很火啊,看了B站上很多视频,自己非常手痒,高低自己得整一个啊,但是让我很难受的是,翻遍了github前十页,竟然没有一个C#的ChatGPT项目,我好难受啊!那能怎么办?自己搞......
  • 数据结构学习笔记 第一章
    一、为什么要写博客?前段时间听过一个在学术界卓有成就的学长谈他的学习、科研经验,他讲到“很多学生往往只重视学习或者科研的成果,却忽视了学习的过程······对于......
  • 第一天-安装pycaret
    1、新建一个名为pycaret的环境condacreate-npycaret  因为当前版本过于低,需要安装新版本,按y继续则可安装成功  2、激活新建的环境condaactivatepycare......
  • UE4 Hello World 创建第一个UE4工程
    首先先熟悉几个UE4常用的类AGameMode(控制整个项目的逻辑)TheGameModedefinesthegamebeingplayed.Itgovernsthegamerules,scoring,whatactorsareallowedtoex......
  • 《财务自由第一课》摘录
    因为,“犹豫”是我们大脑中最天然的保护机制。遇到危险,我们的大脑会给我们发出信号,我们可能会迟疑;又或者,大脑甚至会创造另外一件事情让我们去处理,好让我们能躲过危险。如果......
  • 第一节:项目结构介绍、Vuex的应用、axios封装思路、菜单权限、按钮权限剖析
    一.        二.        三.         !作       者:Yaopengfei(姚鹏飞)博客地址:http://www.cnblog......