【计算机视觉 · Python】imutils的基本使用

一、简介

imutils 是一个 OpenCV 的 Python 封装库,简化了图像的处理,可以更方便的实现图像显示(使用 Matplotlib)、平移(Translate)、旋转(Rotate)、缩放(Resize)、骨架化(Skeletonizate)等操作。

二、安装

pip install imutils

三、基本使用

3.1 图像显示

imutils.opencv2matplotlib(img)

说明

将 OpenCV 默认的 BGR 图像格式转换为 RGB 格式,以便在 matplotlib 中显示

返回值

转换后的图像

参数

  • img: 要转换的图像

示例

import cv2
import matplotlib.pyplot as plt
import imutils

img = cv2.imread("test.jpg")

plt.figure("img")
plt.imshow(imutils.opencv2matplotlib(img))
plt.show()

请添加图片描述

3.2 平移(Translate)

imutils.translate(img, x, y)

返回值

平移后的图像

参数

  • img: 要移动的图像
  • x: 沿x轴移动的距离
  • y: 沿y轴移动的距离

示例

import cv2
import matplotlib.pyplot as plt
import imutils

img = cv2.imread("test.jpg")
translated = imutils.translate(img, 400, 400)

plt.figure("img")
plt.imshow(imutils.opencv2matplotlib(translated))
plt.show()


请添加图片描述

3.3 旋转(Rotate)

imutils.rotate(img, angle)
imutils.rotate_bound(img, angle)

说明

  • rotate: 逆时针旋转
  • rotate_bound: 顺时针旋转

返回值

旋转后的图像

参数

  • img: 要旋转的图像
  • angle: 要旋转的角度(角度制)

示例

import cv2
import matplotlib.pyplot as plt
import imutils

img = cv2.imread("test.jpg")
rotated = imutils.rotate(img, 90)

plt.figure("img")
plt.imshow(imutils.opencv2matplotlib(rotated))
plt.show()


请添加图片描述

3.4 缩放(Resize)

imutils.resize(img, width=width, [,height=height])

说明

在 imutils 中缩放会自动保持图片的宽高比,只需指定 weight 和 height 其中一个参数,就会根据图片原比例自动计算出另一个

返回值

缩放后的图像

参数

  • img: 要缩放的图像
  • width: 缩放后的图像宽度
  • heigth: 缩放后的图像高度

示例

import cv2
import matplotlib.pyplot as plt
import imutils

img = cv2.imread("test.jpg")
resized = imutils.resize(img, width=300)

plt.figure("img")
plt.imshow(imutils.opencv2matplotlib(resized))
plt.show()


请添加图片描述

3.5 骨架化(Skeletonizate)

imutils.skeletonize(img, size=(3, 3))

返回值

处理后的图像

参数

  • img: 要骨架化的图像,必须是灰度图
  • size: 卷积核的大小

示例

import cv2
import matplotlib.pyplot as plt
import imutils

img = cv2.imread("test.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
skeletonized = imutils.skeletonize(gray, size=(3, 3))

plt.figure("img")
plt.imshow(imutils.opencv2matplotlib(skeletonized))
plt.show()


请添加图片描述

四、参考资料

猜你喜欢

转载自blog.csdn.net/qq_34802028/article/details/127467441
今日推荐