全文预览

  • OpenCV安装
  • 熟悉图像基本操作
  • 学习读取视频
  • 练习代码(全)
    • testImg.py
    • testVideo.py
  • 碎碎念

OpenCV安装

使用软件:pycharm,在File选项卡下打开Setting窗口。选择“Project comproject”菜单下的 “Project Interpreter”选修,点击右边的加号,install cv2第三方库。

没错就是这么简单啊哈哈哈哈哈哈,或者你cmd命令直接pip install 也行嗯

熟悉图像基本操作

项目目录如下:

练习涉及到的基本图像操作包括图片的简单读写、图像复制、色彩变换、显示图像、查看图像尺寸、截取部分图像、图像缩放、输出数字图像、简单图像的数值计算、边界填充和图像融合等。

具体运行结果部分截图如下。

怎么说呢,颇具喜剧效果嗯。

学习读取视频

利用cv.VideoCapture(),cv.VideoWriter()方法对老师给的素材进行操作。能够成功读取并显示视频。修改部分代码,加快视频播放进度。

练习代码(全)

testImg.py

# -*- coding: utf-8 -*-
# @TIME     : 2020/9/15 11:08
# @Author   : Chen Shan
# @Email    : jacobon@foxmail.com
# @File     : test.py
# @Software : PyCharmimport cv2
import matplotlib.pyplot as plt
import numpy as np# 安装cv2第三方库测试
# img = cv2.imread(r"C:\Users\Administrator\Pictures\14.jpg")
# cv2.imshow("Image", img)
# cv2.waitKey (0)
# cv2.destroyAllWindows()
# print(cv2.__version__)# 读取本地图片,并进行BGR到RGB的转换
# img = cv2.imread(r"C:\Users\Administrator\Pictures\temp.jpg")
# b,g,r = cv2.split(img)
# img2 = cv2.merge([r,g,b])# 显示图片
# cv2.imshow("Image", img)
# cv2.waitKey (0)
# cv2.destroyAllWindows()# 定义图片显式的方法
def cv_show(name,img):cv2.imshow(name,img)cv2.waitKey(0)cv2.destroyAllWindows()# cv_show('cat',img)# 查看图像大小
# print(img.shape)# 将图像转换为灰度图像并查看图像大小
# img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
# print(img_gray.shape)# 显示灰度图像
# cv_show('cat',img_gray)# 打印数字图像
# print(img_gray)# 对比图像像素个数
# print('图像像素个数:'+str(img.size))
# print('灰色图像像素个数:'+str(img_gray.size))# 保存图像到本地并显示
# cv2.imwrite('mycat.png',img)
# mycat = cv2.imread('mycat.png')
# plt.imshow(mycat)
# cv_show('mycat',mycat)# 打印图像数据类型
# print(type(img_gray))
# print(img.dtype)# 截取图像的部分并显示
img = cv2.imread('mycat.png')
# img2 = img[0:100,0:120]
# cv_show('original',img)
# cv_show('ROI',img2)# 复制图像
cur_img = img.copy()
# 只保留R通道
# cur_img[:,:,0]=0
# cur_img[:,:,1]=0
# cv_show('R channel',cur_img)# 只保留G通道
# cur_img[:,:,0]=0
# cur_img[:,:,2]=0
# cv_show('G channel',cur_img)# 只保留B通道
cur_img[:,:,1]=0
cur_img[:,:,2]=0
cv_show('G channel',cur_img)# 读取方式:灰度图像
# img_cat = cv2.imread('mycat.png',cv2.IMREAD_GRAYSCALE)
#
# top_size,down_size,left_size,right_size=(50,50,50,50)
#
# # plt.imshow(img_cat)
# # cv_show('cat',img_cat)
# replicate = cv2.copyMakeBorder(img_cat,top_size,down_size,left_size,right_size,cv2.BORDER_REPLICATE)
# reflect = cv2.copyMakeBorder(img_cat,top_size,down_size,left_size,right_size,cv2.BORDER_REFLECT)
# reflect_101 = cv2.copyMakeBorder(img_cat,top_size,down_size,left_size,right_size,cv2.BORDER_REFLECT_101)
# wrap = cv2.copyMakeBorder(img_cat,top_size,down_size,left_size,right_size,cv2.BORDER_WRAP)
# constant = cv2.copyMakeBorder(img_cat,top_size,down_size,left_size,right_size,cv2.BORDER_CONSTANT,value=0)# # 显示
# plt.subplot(2,3,1),plt.imshow(img_cat,'gray'),plt.title('original image')
# plt.subplot(2,3,2),plt.imshow(replicate,'gray'),plt.title('replicate')
# plt.subplot(2,3,3),plt.imshow(reflect,'gray'),plt.title('reflect')
# plt.subplot(2,3,4),plt.imshow(reflect_101,'gray'),plt.title('reflect_101')
# plt.subplot(2,3,5),plt.imshow(wrap,'gray'),plt.title('wrap')
# plt.subplot(2,3,6),plt.imshow(constant,'gray'),plt.title('constant')
# # plt.imshow()函数负责对图像进行处理,并显示其格式,
# # plt.show()则是将plt.imshow()处理后的函数显示出来。
# plt.show()# # 数值计算
# img_cat = cv2.imread('mycat.png')
# img_dog = cv2.imread('mydog.jpg')# print(img_cat[20:25,20:25,0])
# img_cat2 = img_cat+10
# print(img_cat2[20:25,20:25,0])
# print(img_dog[20:25,20:25,0])# 重新设定图像大小
# img_cat = cv2.resize(img_cat,(200,200))  # h,w
# print(img_cat.shape)# print((img_cat+img_dog)[0:5,0:5,0])
# print(cv2.add(img_cat,img_dog)[0:5,0:5,0])# # 图像融合
# print(img_cat.shape)
# print(img_dog.shape)
# res = cv2.addWeighted(img_dog,0.1,img_cat,0.9,0)
# plt.imshow(res)
# plt.show()
#
# # 图像变形/图像缩放
# img_cat = cv2.resize(img_cat,(0,0),fx=1,fy=2)
# plt.imshow(img_cat)
# plt.show()

testVideo.py

# -*- coding: utf-8 -*-
# @TIME     : 2020/9/26 19:13
# @Author   : Chen Shan
# @Email    : jacobon@foxmail.com
# @File     : testVideo.py
# @Software : PyCharmimport cv2
import matplotlib.pyplot as plt
import numpy as np# 读取视频
cap = cv2.VideoCapture(r"Siri.mp4")while cap.isOpened():ret, frame = cap.read()# 如果正确读取帧,ret为Trueif not ret:print("can not read this video, Exit...")breakimg_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)cv2.imshow('frame', img_gray)# if cv2.waitKey(100)& 0xFF ==27:# breakif cv2.waitKey(1) & 0xFF == ord('q'):breakcap.release()
cv2.destroyAllWindows()

碎碎念

说实在这应该是一门挺有意思的但我兴趣并不是很大的课,我想想,如果是ldw老师上的话也不会好很多,大概就一般般,但ycz老师也很好(能感受到他的热爱嗯,从不一会就写满的板书),主要是学生的错,保持热情的时间不够,仅止于完成作业吧我想

那么886,哆啦A梦真可爱,特别是瘪嘴流冷汗的,你说是不(是)

计算机视觉 : 安装cv2第三方库 + 图像的基本操作相关推荐

  1. Anaconda 安装python第三方库的各类方法

    Anaconda 安装python第三方库的各类方法(已更新离线安装) 之前的文章讲了有关anaconda的一些介绍和安装,第三方源也介绍了,本文介绍Anaconda安装python第三发库的各类方法 ...

  2. QGIS中安装Python第三方库

    在QGIS自带的python中安装第三方库 如果安装了QGIS,在所有程序中搜OSGeo4W Shell,以管理员身份打开,可以安装第三方库 环境设置 错误尝试: 直接安装,不是QGIS中的pytho ...

  3. 安装Python第三方库的三个方法

    方法一: (cmd命令行) pip 方法[主要方法,适用于99%的情况][依赖网络状况] 在命令行输入pip -h 可查看该命令帮助信息 常用pip命令 ① pip install <第三方库名 ...

  4. dos系统不能安装python模块,无法使用pip命令安装python第三方库的原因及解决方法...

    再dos中无法使用pip,命令主要是没有发现这个命令.我们先找到这个命令的位置,一般是在python里面的scripts文件夹里面.我们可以把dos切换到对应的文件夹,再使用pip命令就可以了. 如果 ...

  5. 离线安装python第三方库的实用方法:解决公司内网,服务器/电脑不能上网却需要安装python三方库问题(上:Windows环境中)

    离线安装python第三方库的实用方法:解决公司内网,服务器/电脑不能上网却需要安装python三方库问题(上:Windows环境中) 参考文章: (1)离线安装python第三方库的实用方法:解决公 ...

  6. python如何离线安装第三方库_离线环境安装python第三方库

    python 离线环境安装python第三方库 author: yafeishi tags: AntDB,python python对于运维工作确实方便了很多,但很多比较实用的库都是第三方提供,在os ...

  7. python中安装一个第三方库的命令格式是-无法使用pip命令安装python第三方库的彻底解决方案...

    无法使用pip命令安装python第三方库的原因及解决方法 再dos中无法使用pip,命令主要是没有发现这个命令.我们先找到这个命令的位置,一般是在python里面的Scripts文件夹里面.我们可以 ...

  8. python第三方库安装-python第三方库安装在哪

    简单来说 如果是系统自带的python,会使用dist-packages目录: 如果你手动安装python,它会直接使用目录site-packages. 这允许你让两个安装隔离开来. dist-pac ...

  9. python中安装一个第三方库的命令格式是-PyCharm 如何安装python第三方库及插件

    一.如何安装python第三方库: 1.有一个专门可下载安装第三方库的网址: http://www.lfd.uci.edu/~gohlke/pythonlibs/ Ctrl+f 搜索要下载的第三方库, ...

最新文章

  1. python使用base64编码解码数据
  2. 求解线性最小二乘问题的奇异值分解及广义逆法的C++实现
  3. C#中一道关于多线程的基础练习题——模拟仓库存销过程
  4. 【SSM框架系列】Mybatis映射配置文件与核心配置文件深入
  5. 获取用户之间关系——使用followerway
  6. 信息学奥赛一本通(1086:角谷猜想)
  7. 什么叫小米粒吸尘机器人_2020年,吸尘器推荐选购,家用吸尘器什么牌子好?扫地机器人推荐,吸尘器选购避坑指南!...
  8. Laravel 安装mysql、表增加模拟数据、生成控制器
  9. 55.模拟撕衣服游戏编辑图片
  10. 从数学的视角看社交网络
  11. logo字体在线设计工具
  12. 自学微信小程序开发第六天- TODOS案例
  13. 机器学习之集成学习(七)随机森林scikit-learn库
  14. 鼠标及键盘详细的键值表
  15. 简单的SWF视频播放器代码
  16. rabbitmq添加插件和配置文件的添加
  17. DO WE NEED ANISOTROPIC GRAPH NEURALNETWORKS?(EGConv)
  18. csgo搭建显示段位的服务器,csgo官匹隐藏分怎么看 官匹段位升级机制
  19. ios android 占有率,Android全球占有率28.4% 超iOS一倍
  20. 企业内网防火墙搭建实验

热门文章

  1. Relative Path Traversal
  2. 计算机组成原理03——计算机指令
  3. 如何用话费账户来做手机支付
  4. Python-鲤鱼王升级
  5. Day01 学习Java(四大特性、数据类型、运算符)
  6. Java的四大修饰符
  7. Cppcheck配置及使用
  8. 安装Office2016遇到“无法流式传输Office”问题
  9. 为什么WiFi和USB3.0会互相干扰?
  10. Field memberPOMapper in com.aiguigu.crowd.service.impl.MemberServiceImpl required a bean of type ‘co