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() |
输出量