用Python处理图像?

Image processing in Python?

Python提供了许多用于图像处理的库,包括-

  • OpenCV的?图像处理库主要专注于实时计算机视觉,并在2D和3D功能工具包,面部和手势识别,人机交互,移动机器人,对象识别等广泛领域中得到应用。
  • Numpy和Scipy库?用于图像处理和处理。
  • Sckikit?提供大量用于图像处理的算法。
  • Python影像库(PIL)?要对图像执行基本操作,例如创建缩略图,调整大小,旋转,在不同文件格式之间转换等。

在本节中,我们将了解python中图像处理的一些基础知识。

安装所需的库

我们的第一步是安装所需的库,例如openCV,枕头或其他我们要用于图像处理的库。我们可以使用pip安装所需的库,例如-

1
$pip install pillow

就是这样:现在我们可以使用我们的图像了。

图片:Open()和show()

首先,打开文件/图像并显示。您可以在显示如下所示的同时旋转图像-

1
2
3
4
5
6
7
8
#Import required library
from PIL import Image

#Open Image
im = Image.open("TajMahal.jpg")

#Image rotate & show
im.rotate(45).show()

输出量

作为上述变量im,是枕头对象。我们可以检索有关打开的图像的一些信息-

1
2
3
4
5
6
7
>>> im
<PIL.JpegImagePlugin.JpegImageFile image mode = RGB size = 1000x667 at 0x65AB990<
>>> im.size
(1000, 667)
>>> im.format
'JPEG'
>>>

转换并保存()图像

我们可以将图像格式从一种形式更改为另一种形式,如下所示-

1
>>> im.save('TajMahal.png')

现在,如果我们看到该文件夹??,则我们具有两种不同格式的相同图像。

调整大小缩略图()

我们可以使用枕头的thumbnail()方法更改图像的大小-

1
2
>>> im.thumbnail ((300, 300))
>>> im.show()

图像将更改如下:

转换为灰度图像?兑换()

我们可以从原始彩色图像制作灰度图像。

1
2
>>> TajMahal_gray = Image.open('TajMahal.jpg').convert('L')
>>> TajMahal_gray.show()

其中" L"代表"发光"。

上面的示例来自python的PIL库。我们可以使用其他库,例如open-cv,matplotlib和numpy进行图像处理。下面是一些示例程序,以演示如何使用功能强大的库进行图像处理。

以灰度显示图像

1
2
3
4
5
6
7
8
9
#Import required library
import cv2
import numpy as np
from matplotlib import pyplot as plt

im = cv2.imread('TajMahal.jpg',cv2.IMREAD_GRAYSCALE)
cv2.imshow('image',im)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出量

上面的程序用刻度线标记的另一种方式来标记图像。

1
2
3
4
5
6
7
8
9
10
11
import cv2
import numpy as np
from matplotlib import pyplot as plt

im = cv2.imread('TajMahal.jpg',cv2.IMREAD_GRAYSCALE)

plt.imshow(im, cmap = 'gray', interpolation = 'bicubic')
# to hide tick values on X and Y axis
plt.xticks([]), plt.yticks([])
plt.plot([200,300,400],[100,200,300],'c', linewidth = 5)
plt.show()

输出量