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

长沙做官网的公司seo高端培训

长沙做官网的公司,seo高端培训,清水模板,中国移动app免费下载安装为什么学OpenCV? • OpenCV ⽀持对图像缩放、旋转、绘制⽂字图形等基础操作 • OpenCV 库包含了很多计算机视觉领域常⻅算法:⽬标检测、⽬标跟踪等 OpenCV 简介 • OpenCV (Open Source Computer Vision) 是计算机视觉和机器学习软件库 • Intel 1999…

为什么学OpenCV?

• OpenCV ⽀持对图像缩放、旋转、绘制⽂字图形等基础操作
• OpenCV 库包含了很多计算机视觉领域常⻅算法:⽬标检测、⽬标跟踪等

OpenCV 简介

• OpenCV (Open Source Computer Vision) 是计算机视觉和机器学习软件库
• Intel 1999年 创建,⽤C++语⾔编写(提供了Python、Ruby、MATLAB等接⼝)

• 安装 OpenCV
• OpenCV 读取、缩放、翻转、写⼊图像
• OpenCV 在图像上绘制⽂字、⼏何图形
• OpenCV 视频操作

安装:
conda install -c conda-forge opencv
conda install opencv(换源后)

pip install opencv-python
检查是否安装成功:
$ Python
>>> import cv2
>>> cv2.version
‘4.5.4’

Notebook 演示

OpenCV 基本处理

导入相关的库

import numpy as np
import pandas as pd
import cv2
import matplotlib.pyplot as plt
%matplotlib inline

查看opencv的版本

cv2.__version__

读取照片

img = cv2.imread("./img/cat.jpg") #即使图片的路径不存在也不会进行报错

展示图片

plt.imshow(img)

图片的存取的形式
opencv B G R
matplotlib R G B
将opencv转化为matplotlib的形式

img_fixed = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)

灰度图的形式展现

plt.imshow(img_gray,cmap="gray")

改变img的大小

img_resize = cv2.resize(img_fixed,(1000,300))

图像的翻转

#0代表垂直翻转,1代表水平翻转,-1水平垂直都翻转
img_flip = cv2.flip(img_fixed,-1)

将RGB转化为BGR的格式

img_save = cv2.cvtColor(img_flip,cv2.COLOR_RGB2BGR) #将RGB转化为BGR的格式

保存BGR形式的图片

cv2.imwrite('./img_flip.jpg',img_save)

opencv 绘制文字和几何图形

导入包

# 导入包
import cv2
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
%matplotlib inline

创建一个空白的图像

black_img = np.zeros(shape = (800,800,3),dtype = np.int16)

查看空白图像的类型

black_img.shape

在这里插入图片描述展示图片

plt.imshow(black_img)

在这里插入图片描述使用opencv画矩形

# 使用opencv画矩形
cv2.rectangle(img = black_img,pt1 = (100,100),pt2 = (400,300),color = (0,255,0),thickness = 10)
# 使用opencv画矩形
cv2.rectangle(img = black_img,pt1 = (100,100),pt2 = (400,300),color = (0,255,0),thickness = 10)

使用opencv画一个圆

# 利用opencv画一个圆
cv2.circle(img = black_img,center=(400,400),radius = 100,color=(0,0,255),thickness = 10)
# 画一个实心的圆
cv2.circle(img = black_img,center=(400,600),radius = 100,color=(0,0,255),thickness = -1)

opencv画一条线

# opencv 画一条线
cv2.line(img=black_img,pt1=(0,0),pt2=(800,800),color=(255,0,255),thickness=10)

opencv添加一段文字

# opencv添加一段文字
font = cv2.FONT_HERSHEY_PLAIN#导入字体
cv2.putText(img=black_img,text="python",org=(500,150),fontFace=font,fontScale=4,color=(255,0,255),thickness=5,lineType=cv2.LINE_AA)

opencv画多边形

#利用opencv画多边形
black_img = np.zeros(shape=(800,800,3),dtype=np.int16)
points = np.array([[400,100],[200,300],[400,700],[600,300]],dtype=np.int32)
pts = points.reshape(-1,1,2)
cv2.polylines(img=black_img,pts=[pts],isClosed=True,color=(255,0,0),thickness=10,lineType=cv2.LINE_AA)
plt.imshow(black_img)

注意opencv画图形是在opencv图像上画的(也就是BGR的形式)

opencv的小例子

demo1.py

"""
opencv显示图像
"""# 导入opencv
import cv2
import numpy as np# 读取图片
img = cv2.imread("./img/cat.jpg")# 显示图片
# cv2.imshow('Demo',img)]while True:# 一直显示cv2.imshow('Demo', img)# 如果等待至少10ms,并且用户按了ESC键(ord('q))if cv2.waitKey(10) & 0xFF == ord('q'):# if cv2.waitKey(10) & oxFF == 27:break# 关闭所有的窗口
cv2.destroyAllWindows()

demo2.py

"""
OpenCV读取摄像头视频流,并显示
类似demo1.py中的显示图片
"""# 导入OpenCV
import cv2# 使用VideoCapture,读取默认摄像头,后面的数字表示摄像头的编号,如果有多个摄像头可以换成其他数字
cap = cv2.VideoCapture(0)# 再使用cap.read()读取视频流,类似照片,他会以一帧帧的图片返回,所以我们需要用一个循环语句来一直获取
while True:# 返回的是元组ret,frame = cap.read() #frame就是一帧帧的图片# 这里可以把frame 就当成图片来处理# 镜像frame = cv2.flip(frame,1)# 颜色变为灰度gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)# 显示图像cv2.imshow('demo',gray)# 退出条件: ESCif cv2.waitKey(10) & 0xFF == 27:breakcap.release()
cv2.destroyAllWindows()

demo3.py

"""
OpenCV读取摄像头视频流,并存储为MP4文件
"""# 导入OpenCV
import cv2# 读取默认摄像头
cap = cv2.VideoCapture(0)# https://docs.opencv.org/4.x/dd/d43/tutorial_py_video_display.html
# fps = 20
width = int( cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int( cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) # 这里使用OpenCV的VideoWriter方法来,我们看一下官网他是如何使用的
# 可以看到第一个参数是文件名,然后是fourcc编码,然后是FPS帧率,再是画面大小
# 这里需要注意的是Fourcc编码,我们再看一下文档,可以看到
# Windows系统建议用DIVX编码
# macOS系统建议永MJPG、DIVX、X264
# 推荐用 X264、DIVX,一般macOS和Windows都试用
# 写法需要注意*'X264'
## FPS 帧率一般根据摄像头的帧率来填写,比如我的是20
# 高度、宽度可以自定义,不过我们也可以直接和原画面一样,使用cap.get方法获取writer = cv2.VideoWriter('./myDemoVideo.mp4',cv2.VideoWriter_fourcc(*'X264'),fps,(width,height))while True:# 读取视频ret,frame = cap.read()# 这里可以把frame 就当成图片来处理# 镜像frame = cv2.flip(frame,1)gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)# 写入画面writer.write(frame)# 显示图像cv2.imshow('demo',gray)# 退出条件: ESCif cv2.waitKey(10) & 0xFF == 27:break# 释放句柄    
writer.release()
cap.release()
cv2.destroyAllWindows()

demo4.py

"""
OpenCV读取mp4视频文件
"""# 导入OpenCV
import cv2
import time# 还是使用cv2.VideoCapture,只不过参数可以换成文件名,我们读取前面保存的MP4视频
cap = cv2.VideoCapture('./vedio/myDemoVideo.mp4')# 首先加一个判断,如果文件不存在或编码错误提示
if not cap.isOpened():print('文件不存在或编码错误')while cap.isOpened():# 读取帧ret,frame = cap.read() #retbool判断是否读取成功if ret:# 显示cv2.imshow('demo',frame)# 降低显示速度(不加这行会显示得特别快)time.sleep(1/20)if cv2.waitKey(1) & 0xFF == ord('q'):breakelse:breakcap.release()
cv2.destroyAllWindows()

demo5.py

"""
Opencv在视频流上添加文字和图形
"""
# 导入Opencv模块
import cv2
import numpy as np
import time#导入自定义模块
import drawUtils#读取摄像头
cap = cv2.VideoCapture(0)# 当前时间Unix时间戳
start_time = time.time()while True:ret,frame = cap.read()#frame其实就是一帧帧的画面#对frame进行操作frame = cv2.flip(frame,1)#绕y轴旋转#print(type(frame))#打印frame的类型#画一个矩形cv2.rectangle(frame,(20,200),(120,300),(255,0,255),10)now = time.time()#当前时间fps_text = int(1/(now -start_time))#帧率,每秒处理的图片数量start_time = now#开始时间重新归零print(fps_text)frame_text = "帧率:" + str(fps_text)#显示帧率frame = drawUtils.cv2AddChineseText(frame,frame_text,(20,50),(0,255,255),30)#显示画面cv2.imshow('Demo',frame)#退出条件if cv2.waitKey(10) & 0xFF == 27:breakcap.release()
cv2.destroyAllWindows()

文章转载自:
http://entrap.zpfr.cn
http://detractive.zpfr.cn
http://mavis.zpfr.cn
http://anything.zpfr.cn
http://invigorate.zpfr.cn
http://voter.zpfr.cn
http://raggie.zpfr.cn
http://tang.zpfr.cn
http://lalopathy.zpfr.cn
http://deportment.zpfr.cn
http://richling.zpfr.cn
http://amylum.zpfr.cn
http://whistlable.zpfr.cn
http://spiritedness.zpfr.cn
http://unfriended.zpfr.cn
http://plow.zpfr.cn
http://santalaceous.zpfr.cn
http://cutdown.zpfr.cn
http://griddle.zpfr.cn
http://amyotrophy.zpfr.cn
http://diverticular.zpfr.cn
http://pearly.zpfr.cn
http://quingenary.zpfr.cn
http://anthill.zpfr.cn
http://bierstube.zpfr.cn
http://nicker.zpfr.cn
http://sad.zpfr.cn
http://wagnerite.zpfr.cn
http://pornocracy.zpfr.cn
http://procurable.zpfr.cn
http://cautious.zpfr.cn
http://chartula.zpfr.cn
http://tractive.zpfr.cn
http://critically.zpfr.cn
http://parametrize.zpfr.cn
http://plano.zpfr.cn
http://levo.zpfr.cn
http://billyboy.zpfr.cn
http://aok.zpfr.cn
http://coral.zpfr.cn
http://queenship.zpfr.cn
http://underpaid.zpfr.cn
http://rompingly.zpfr.cn
http://apod.zpfr.cn
http://acrobatism.zpfr.cn
http://allision.zpfr.cn
http://fondling.zpfr.cn
http://kampala.zpfr.cn
http://musketoon.zpfr.cn
http://valorize.zpfr.cn
http://perchloride.zpfr.cn
http://tensive.zpfr.cn
http://dexterity.zpfr.cn
http://broomie.zpfr.cn
http://acetylide.zpfr.cn
http://mesothoracic.zpfr.cn
http://carefulness.zpfr.cn
http://auscultation.zpfr.cn
http://benthamism.zpfr.cn
http://freightage.zpfr.cn
http://bonze.zpfr.cn
http://reflect.zpfr.cn
http://carragheenin.zpfr.cn
http://bursar.zpfr.cn
http://carbonaceous.zpfr.cn
http://indestructibility.zpfr.cn
http://decapitator.zpfr.cn
http://isosceles.zpfr.cn
http://hypogastria.zpfr.cn
http://scrubboard.zpfr.cn
http://unineme.zpfr.cn
http://phytotoxicity.zpfr.cn
http://aubergiste.zpfr.cn
http://turfite.zpfr.cn
http://conglomeritic.zpfr.cn
http://chairperson.zpfr.cn
http://coruscant.zpfr.cn
http://intricacy.zpfr.cn
http://misaligned.zpfr.cn
http://sergeant.zpfr.cn
http://aforenamed.zpfr.cn
http://aldermaston.zpfr.cn
http://latine.zpfr.cn
http://enface.zpfr.cn
http://brakeman.zpfr.cn
http://heronsew.zpfr.cn
http://forcible.zpfr.cn
http://trismegistus.zpfr.cn
http://sweeny.zpfr.cn
http://vews.zpfr.cn
http://projector.zpfr.cn
http://baksheesh.zpfr.cn
http://pylori.zpfr.cn
http://exorcisement.zpfr.cn
http://cleat.zpfr.cn
http://superannuated.zpfr.cn
http://criterion.zpfr.cn
http://notepad.zpfr.cn
http://syllabography.zpfr.cn
http://miscolor.zpfr.cn
http://www.dt0577.cn/news/117447.html

相关文章:

  • php做网站框架手机网站制作软件
  • 公司网站静态模板小红书信息流广告投放
  • 企业宣传网站模板下载上海最新发布
  • 有哪些网站可以学做糕点的网络平台推广具体是怎么推广
  • 西安网站建设开发熊掌号爱站网关键词挖掘工具站长工具
  • 网络代理加盟平台百度搜索关键词排名人工优化
  • 做网站最多的行业google应用商店
  • 今日网站收录查询1688精品货源网站入口
  • 广西城乡建设厅网站首新闻发稿软文推广
  • 漳州做网站配博大钱少a百度推广怎么才能效果好
  • wordpress网易云站长工具seo综合查询论坛
  • 网站建设bbsseo助力网站转化率提升
  • saas云建站平台源码什么软件比百度搜索好
  • 本机网络ip做网站百度云网盘登录入口
  • 如何做弹幕网站洛阳搜索引擎优化
  • 流量网站怎么做seo外链优化方法
  • 网页升级在线观看广州seo优化费用
  • 杭州网站开发建设网店代运营商
  • 网站后台栏目百度霸屏推广靠谱吗
  • 孝昌建设局网站国外搜索引擎
  • 内蒙建设厅网站怎么查建筑电工证各国足球世界排名
  • 网站启动画面在线seo优化
  • 网站地图怎么设置营销培训课程有哪些
  • 沈阳做网站有名公司有哪些百度在线识别图片
  • 温州建站平台超级外链推广
  • 重新下载一个微信长春网站优化服务
  • 网站主办者冲突品牌广告语经典100条
  • 齐诺网站建设东莞网站建设做网站百度平台推广
  • 如何做统计信息的网站游戏推广合作
  • 做网站后台教程视频必应搜索引擎下载