1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

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

Python中的机器学习实例

下面小编将会介绍一些关于Python中机器学习的应用实例,其中包括如何处理图像等内容。

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

用OpenCV进行图像处理

OpenCV是一种常用的技术模块,用于处理图像。它包含以下几种类型:

  • 物体识别:通过视觉和内部存储对物体进行判断
  • 图像分割
  • 人脸识别
  • 汽车安全驾驶
  • 人机交互

本文将以最基本的OpenCV模块为例,介绍一些基本的图像处理操作。

图像的基本操作

图像本质上是由矩阵组成的。灰度图像是矩阵,彩色图像是多维矩阵。我们可以将对图像的操作转换为对矩阵的操作。

读取图像

使用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表示图片的矩阵。

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

注意,如果使用了cv2.imshow()方法,则必须跟着一个销毁窗口的函数。

保存图像

使用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()

图像的属性

使用img.shape()方法可以获取图片的属性,包括行数、列数、通道数。以一张340*308像素的彩色图像为例:

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

对于灰度图像,只有行数和列数:

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

图像的基本操作

最后,我们可以进行一些基本操作,例如修改像素值来往图片中添加一个黑点。以下代码将添加一个黑点到一张空白图片的正中心。

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()

以上就是Python与OpenCV进行图像处理的基本操作。希望能对你的工作和学习有所帮助。

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/7382.html