一、简介

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


请添加图片描述

四、参考资料

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐