1.图片的读取
cv2.IMREAD_COLOR:彩色图像
cv2.IMREAD_GRAYSCALE:灰度图像

imgs=cv2.imread("dog.jpg")
imgs=cv2.cvtColor(imgs,cv2.COLOR_BGR2RGB)
print(imgs)
plt.imshow(imgs)
plt.show()

2.视频中读取图片
cv2.VideoCapture可以捕获摄像头,用数字来控制不同的设备

vc=cv2.VideoCapture("E:\\Pec\\ved.mp4")
#检测是否能打开
if vc.isOpened():open,frame=vc.read() #一帧一帧的读取
else:open=False
#读取视频,并转换为灰度视频
while open:ret,frame=vc.read()if frame is None:breakif ret==True:gray=cv2.cvtColor(frame,cv.COLOR_BGR2GRAY)cv2.imshow('result',gray)if cv2.waitKey(10) & 0xFF==27:break
vc.release()
cv.destroyAllWindows()

3.截取图片的部分范围

#截取部分图像数据(ROI)
img=cv2.imread('cat.jpg')
#截取自己想要的切片
imgs=img[100:300,0:200]
plt.imshow(imgs)
plt.show()

4.分离颜色通道

#颜色通道提取
img=cv2.imread('dog.jpg')
b,g,r=cv2.split(img)
print(r.shape)
#将分离的颜色通道再组合
img=cv2.merge((b,g,r))
print(img.shape)
#只保留R通道
cur_img=img.copy()
cur_img[:,:,0]=0 #取所有区域,把B设置0
cur_img[:,:,1]=0 #取所有区域,把G设置0
plt.imshow(cur_img)
plt.show()#只保留G通道
cur_img=img.copy()
cur_img[:,:,0]=0
cur_img[:,:,2]=0
plt.imshow(cur_img)
plt.show()#只保留B通道
cur_img=img.copy()
cur_img[:,:,1]=0
cur_img[:,:,2]=0
plt.imshow(cur_img)
plt.show()


5.边界填充

  • BORDER_REPLICATE:复制法,复制最边缘像素

  • BORDER_REFLECT:反射法,对感兴趣的图像中的像素在两边进行复制,如:fedcba|abcdefgh|hgfedcb

  • BORDER_REFLECT_101:反射法,以最边缘像素为轴,如:gfedcb|abcdefgh|gfedcba

  • BORDER_WRAP:外包装法,如:cdefgh|abcdefgh|abcdefg

  • BORDER_CONSTANT:常量法,常数填充

top_size,bottom_size,left_size,right_size=(50,50,50,50)
replicate=cv2.copyMakeBorder(imgs,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_REPLICATE)
reflect = cv2.copyMakeBorder(imgs,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_REFLECT)
reflect101 = cv2.copyMakeBorder(imgs,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_REFLECT_101)
wrapp = cv2.copyMakeBorder(imgs,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_WRAP)
constant = cv2.copyMakeBorder(imgs,top_size,bottom_size,left_size,right_size,borderType=cv2.BORDER_CONSTANT,value=0)
plt.subplot(231),plt.imshow(imgs,'gray'),plt.title('ORIGINAL')
plt.subplot(232), plt.imshow(replicate, 'gray'), plt.title('REPLICATE')
plt.subplot(233),plt.imshow(reflect),plt.title('REFLECT')
plt.subplot(234),plt.imshow(reflect101),plt.title('REFLECT_101')
plt.subplot(235),plt.imshow(wrapp),plt.title('WRAP')
plt.subplot(236),plt.imshow(constant),plt.title('CONSTANT')
plt.show()


6.图像融合

img_cat=cv2.imread("cat.jpg")
print(img_cat.shape)
print(imgs.shape)
#改变图像的大小
img_cat = cv2.resize(img_cat, (1080, 675))
print(img_cat.shape)
# #图像融合
img=cv2.addWeighted(img_cat,0.4,imgs,0.6,0)
print(img)
plt.imshow(img)
plt.show()


7.图像缩放

#将图像按要求的倍数缩放
img=cv2.resize(imgs,(0,0),fx=1,fy=3)
print(img)
plt.imshow(img)
plt.show()

计算机视觉入门(一)相关推荐

  1. 计算机视觉入门CV之街道字符识别—01赛题理解

    计算机视觉入门CV之街道字符识别-01赛题理解 赛题 赛题理解 1.赛题数据 2.数据标签 3.数据读取 思路分析 赛题   以计算机视觉中字符识别为背景,要求选手预测街道字符编码,这是一个典型的字符 ...

  2. 计算机视觉学习路线—计算机视觉入门必读的20本书

    计算机视觉入门的一些pdf书籍,按照不同领域帮大家划分了下,涉及深度学习基础.目标检测.Opencv.SLAM.点云.多视图集合.三维重建等~ 20本干货书籍已经给大家打包好了,需要的加小姐姐威信领取 ...

  3. 计算机视觉入门之图像处理<六>:图像锐化处理

    往期文章回顾: 计算机视觉入门之<零> 计算机视觉入门之图像处理<一>:图像处理基础概念 计算机视觉入门之图像处理<二>:图像处理基础概念 计算机视觉入门之图像处理 ...

  4. 机器学习与计算机视觉入门项目——视频投篮检测(一)

    机器学习与计算机视觉入门项目--视频投篮检测(一) 随着机器学习.深度学习技术的迅猛发展,计算机视觉无疑是近年来发展最快的AI领域之一.正因如此,互联网上有关计算机视觉和机器学习.深度学习的社区.博文 ...

  5. 机器学习与计算机视觉入门项目——视频投篮检测(二)

    机器学习与计算机视觉入门项目--视频投篮检测(二) 一.手工特征与CNN特征 在上一次的博客中,介绍了计算机视觉和机器学习的关系.篮球进球检测的基本问题和数据集的制作.这次的我们主要介绍如何从原始图像 ...

  6. 机器学习与计算机视觉入门项目——视频投篮检测(三)

    机器学习与计算机视觉入门项目--视频投篮检测(三) 分类器的设计和选择 几种损失函数 Logistic回归 基本原理 损失函数 Logistic回归的求解--梯度下降法 损失函数的梯度计算 在第二部分 ...

  7. OpenCV-Python计算机视觉入门

    文章目录 OpenCV-Python计算机视觉入门 开发环境 一.入门基础 1.演示 2.图像的读取.显示和保存 二.图像处理基础 1.图像处理入门基础 2.图像像素处理 3.使用numpy访问像素 ...

  8. arduino 入门套件_计算机视觉入门套件

    arduino 入门套件 Among the many disciplines in the field of machine learning, computer vision has arguab ...

  9. 计算机视觉入门(包含论文学习网址)

    阅读了微信公众号的一些文章并总结. 谷歌学术镜像:http://scholar.hedasudi.com/ 学习网址:(可以改网址的年代,可以先观看视频,再看PPT和文章) http://kesen. ...

  10. [转]计算机视觉入门

    目录 简介 方向 热点 简介 计算机视觉(Computer Vision)又称为机器视觉(Machine Vision),顾名思义是一门"教"会计算机如何去"看" ...

最新文章

  1. 键盘样式风格有关设置-iOS开发
  2. Android Studio3.5.2离线安装gradle
  3. search has not been saved
  4. Windows消息循环机制详细概述
  5. 《程序员开发心理学》阅读笔记一
  6. es6新特性之Map
  7. 新疆特岗计算机考试题,2020新疆特岗教师笔试资料领取(小学信息技术)
  8. 服务器性能考察指标,服务器性能考察指标
  9. 一次订单号重复引起的事故,把我坑惨了!
  10. 前端之图形学-1 数据可视化
  11. 为什么java数值型的负数比正数多一位
  12. postgres中的中文分词zhparser
  13. mysql中获取时间的年月日_MySQL如何获取一个指定日期中的年份信息(YEAR函数)呢?...
  14. @2017-2018 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2017) K:Kayaking Trip(二分+贪心)
  15. 蝴蝶展翅鸿蒙云飞,我不会告诉你,中华民族几千年的梦就是蝴蝶云梦
  16. 剪辑画中画视频,如何用视频实现画中画效果
  17. niosii spi 外部_转载:NIOS II spi详解
  18. Tcp连接时三次握手的问题和思考
  19. 单点登录涉及的技术点
  20. web页面内调取QQ应用

热门文章

  1. python真的有用吗-Python真的没有用吗?
  2. 快速打开命令行方法集合
  3. 如何快速打造一个高权重的短视频账号?短视频运营推广日记(2)
  4. web概念、B/C、C/S区别与优缺点以及网络通信三要素:IP、端口号、传输地址
  5. 杰理之连接杰理蓝牙测试盒标志和后台切去蓝牙的使用【篇】
  6. 基于深度学习的文本数据特征提取方法之Word2Vec
  7. 计算机excel在三维饼图改字,从图形样式、文字数据到颜色更改,教你如何用Excel制作饼形图...
  8. pip install lap出现问题
  9. [re入门]ce对扫雷的修改
  10. bilibili杨宙:效能之上,高效交付