资讯专栏INFORMATION COLUMN

如何使用Python+OpenCV实现基本的图像处理

89542767 / 545人阅读


  小编写这篇文章的主要目的,还是来给大家讲解关于Python的一些实例,比如会涉及到一些机器学习的内容,比如去处理基本的图像,那么,它的一个操作步骤是什么呢?下面小编给大家做出一个详细解答。


  今天小编给大家分析python中,关于机器学习的一些具体实例,如果我们来处理图像的话,那么,都会用到opencv这个技术模块。该模块的组成,大致分为一下几种类型。


  物体识别:通过视觉以及内部存储来进行物体的判断


  图像分割


  人脸识别


  汽车安全驾驶


  人机交互


  等等


  当然这次小编并不打算将这么高深的内容,今天就从最基本的opencv模块在图像的基本操作上说起


  模块的安装


  模块的安装我们通过都是通过pip命令来进行的


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


  图片的各种操作


  学过线性数学的话,我们对怼矩阵就不会有陌生的感觉。图像在本质来说,就是由一个一个的矩阵组成的,灰度图像是一个普通的矩阵,而彩色图像就是一个多维矩阵,我们对于图像的操作可以自然地转换成是对矩阵的操作


  读取图像


  首先我们先来读取图像,调用的是cv2.imread()方法,它的语法格式如下

  cv2.imread(filename,flag=1)


  其中的flag参数是用来设置读取图像的格式,默认的是1,表示为按照RGB三通道的格式来进行读取,如果设置成0,则表示以灰度图单通道的方式来进行读取,


  import cv2
  import numpy as np
  img=cv2.imread('1.jpg',0)


  展示图像

  cv2.imshow(name,img)


  其参数解释分别如下:


  name:表示的是展示窗口的名字


  img:图片的矩阵形式


  我们尝试将上面读取的图片展示出来,代码如下


  cv2.imshow("grey_img",img)
  ##如果使用了cv2.imshow()函数,下面一定要跟着一个摧毁窗口的函数
  cv2.destroyAllWindows()


  当我们运行了上述的代码之后,可以发现在一瞬间当中图片弹了出来,但是还没有等我们看清楚图片的样子之后就直接关闭了,原因在于cv2.imshow()函数方法并没有延时的作用,我们添加一个延时的函数,代码如下


  import cv2
  import numpy as np
  img=cv2.imread('1.jpg')
  cv2.imshow("grey_img",img)
  cv2.waitKey(0)
  cv2.destroyAllWindows()

  output

01.png

  图片保存


  最后我们将图片保存下来,这里用到的函数是cv2.imwrite(),它的语法格式如下

  cv2.imwrite(imgname,img)


  其参数解释分别如下:


  imgname:要保存的图片的名字


  img:图片的矩阵形式


  示例代码如下


  import cv2
  import numpy as np
  img=cv2.imread('1.jpg')
  cv2.imshow("grey_img",img)
  cv2.waitKey(0)
  cv2.imwrite('1.png',img)
  cv2.destroyAllWindows()


  图片的各种属性


  有时候我们想要知道图片的像素大小,而图片的本质是矩阵,例如一张1024像素*960像素的图片,就意味着在矩阵当中的行数就是960行,列数是1024列,在opencv模块当中调用的shape()函数方法,代码如下


  import cv2
  img=cv2.imread('1.jpg')
  print(img.shape[0])#行数
  print(img.shape[1])#列数
  print(img.shape[2])#通道数


  output


  308


  340


  3


  可以看到该图片的像素是340*380,通道数是3,而针对灰度图像而言,我们来看一下图片的属性,代码如下


  img=cv2.imread('1_grey.png',0)
  print(img.shape)


  output


  (308,340)


  可以看到对于灰度图像而言,我们就没有看到通道数,只有行数和列数


  图像的基本操作


  最后我们来对图像进行一些基本操作,无非就是改变当中的一些像素值,我们导入一张空白的图片,通过修改当中的像素值来往里面添加一个黑点,代码如下


  import cv2
  import numpy as np

  img=cv2.imread('2.jpg')


  (x,y,z)=img.shape


  for i in range(-10,10):


  for j in range(-10,10):


  #图片的正中心的位置来改变像素值,


  img[int(x/2)+i,int(y/2)+j]=(0,0,0)


  cv2.imshow("img",img)


  cv2.waitKey(0)


  cv2.destroyAllWindows()


  output

02.png

  综上所述,关于python+opencv就为大家介绍到这里了,希望能给带来更多的帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/127996.html

相关文章

  • OpenCV-Python,计算机视觉开发利器

    摘要:而这其中,很多应用都涉及到计算机视觉这样一个细分领域。常见的图像处理灰度图二值化平滑边缘提取这几种都属于数字图像处理的常用方法。对这方面知识感兴趣的,可以找本数字图像处理的相关教材系统地看一遍,了解数字图像处理的基础。 人工智能 ,一个已经被谈论了几十年的概念(最早是 图灵 在 1950年 提出)。如今这几年,相关技术的发展速度是越来越快。高大上如无人驾驶、智能安防、AI辅助诊断,接地...

    阿罗 评论0 收藏0
  • Python十大图像处理工具

    摘要:之成为图像处理任务的最佳选择,是因为这一科学编程语言日益普及,并且其自身免费提供许多最先进的图像处理工具。该库包含基本的图像处理功能,包括点操作使用一组内置卷积内核进行过滤以及颜色空间转换。图像处理系统有时被称为图像处理的瑞士军刀。 showImg(https://segmentfault.com/img/remote/1460000019442221);编译:张秋玥、小七、蒋宝尚 本...

    yuanxin 评论0 收藏0
  • 首次公开,整理12年积累博客收藏夹,零距离展示《收藏夹吃灰》系列博客

    摘要:时间永远都过得那么快,一晃从年注册,到现在已经过去了年那些被我藏在收藏夹吃灰的文章,已经太多了,是时候把他们整理一下了。那是因为收藏夹太乱,橡皮擦给设置私密了,不收拾不好看呀。 ...

    Harriet666 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<