使用opencv和python实现图像的智能处理,python opencv图像识别教程整理

  使用opencv和python实现图像的智能处理,python opencv图像识别教程整理

  说到图像处理,必须提到opencv模块。本文将从图像的基本操作中的基本opencv模块入手,使用Python OpenCV读取和保存图像等。有兴趣的可以看看。

  00-1010安装模块图片、读取图像、显示图像、保存图像的各种属性的各种操作,以及图像的基本操作。今天给大家分享一下Python在图像处理中的具体应用。既然是图像处理,就必须提到opencv模块。该模块支持多种与计算机视觉和机器学习相关的算法,应用领域日益扩大,大致如下

  物体识别:通过视觉和内存判断物体,图像分割,人脸识别,安全驾驶,人机交互等。当然,这个小编并不打算介绍这么深刻的内容。今天我们就从最基础的opencv模块来说说图像的基本操作。

  

目录

  模块的安装由pip命令执行。

  pip安装opencv-python

  pip安装opencv-contrib-python

  

模块的安装

  研究线性代数的正定矩阵并不陌生。本质上,图像是矩阵,灰度图像是普通矩阵,彩色图像是多维矩阵。我们对图像的操作自然可以转化为对矩阵的操作。

  

图片的各种操作

  首先,我们来看图像。调用方法cv2.imread(),其语法格式如下

  cv2.imread(文件名,标志=1)

  的flag参数用于设置要读取的图像的格式。默认值为1,表示按照RGB三通道的格式读取。如果设置为0,则表示在单通道灰度图像中读取。

  导入cv2

  将numpy作为np导入

  img=cv2.imread(1.jpg ,0)

  

读取图像

  cv2.imshow(名称,img)

  这些参数解释如下:

  名称:是显示窗口的名称。img:是图片的矩阵形式。我们尝试显示上面阅读的图片。代码如下所示

  cv2.imshow(grey_img ,img)

  # #如果使用了cv2.imshow()函数,那么后面必须跟一个破坏窗口的函数。

  cv2.destroyAllWindows()

  当我们运行上面的代码时,可以发现画面在一瞬间弹开了,但是在我们看清楚画面之前就直接关闭了。原因是cv2.imshow()函数方法没有延迟。我们用下面的代码添加一个延迟函数。

  导入cv2

  将numpy作为np导入

  img=cv2.imread(1.jpg )

  cv2.imshow(grey_img ,img)

  cv2.waitKey(0)

  cv2.destroyAllWindows()

  输出

  

展示图像

  最后,我们保存图片。这里使用的函数是cv2.imwrite(),其语法格式如下

  cv2.imwrite(imgname,img)

  这些参数解释如下:

  要保存的图片的Imgname:图片的矩阵形式示例代码如下

  导入cv2

  将numpy作为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()函数方法如下

  导入cv2

  img=cv2.imread(1.jpg )

  Print(img.shape[0]) #行数

  Print(img.shape[1]) #列数

  Print(img.shape[2]) #通道数

  输出

  308

  340

  三

  可以看到图片的像素为340*380,通道数为3。对于灰度图像,我们来看看图片的属性。代码如下所示

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

  打印(图像形状)

  输出

  (308,340)

  可以看出,对于灰度图像,我们看到的不是通道数,而是行数和列数。

  

图片的各种属性

  最后对图像做一些基本操作,无非就是改变一些像素值。我们导入一个空白图像,并通过修改像素值在其中添加一个黑点。代码如下所示

  导入cv2

  将numpy作为np导入

  img=cv2.imread(2.jpg )

  (x,y,z)=img.shape

  对于范围(-10,10):内的I

  对于范围(-10,10):内的j

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

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

  cv2.imshow(img ,img)

  cv2.waitKey(0)

  cv2.destroyAllWindows()

  输出

  关于Python OpenCV的基本图像处理的这篇文章到此为止。关于Python OpenCV图像处理的更多信息,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: