imutils是Adrian Rosebrock开发的一个python工具包,它整合了opencv、numpy和matplotlib的相关操作,主要是用来进行图形图像的处理,如图像的平移、旋转、缩放、骨架提取、显示等等,后期又加入了针对视频的处理,如摄像头、本地文件等。imutils同时支持python2和python3。
安装`imutils
pip install imutils
如果需要查看源码的话,可以通过命令pip download imutils来下载
图片的平移
图片的平移是指将图片在X轴或Y轴上移动。opencv中也提供了图片平移的实现,首先需要根据X和Y轴上的变化构建一个平移矩阵M然后调用cv2.warpAffine()实现平移。imutils封装了opencv中的平移操作。
import cv2
import imutils
image = cv2.imread(‘dj.jpeg’)
translated = imutils.translate(image, 25, -75)
cv2.imwrite(‘translated.jpg’, translated)translated
图片的旋转
方法是imutils.rotate(),跟2个参数,第一个是图片数据,第二个是旋转的角度,旋转是朝逆时针方向。同时imutils还提供了另一个相似的方法, rotate_round(),它就是按顺时针旋转的。
import cv2
import imutils
image = cv2.imread(‘dj.jpeg’)
rotated = imutils.rotate(image, 90)
cv2.imwrite(‘rotated_90.jpg’, rotated)
rotated_round = imutils.rotate_bound(image, 90)
cv2.imwrite(‘rotated_90_round.jpg’, rotated_round)rotated
图片的缩放
对图片的缩放,imutils是会保持原有图片的宽高比的, 函数是imutils.resize(),方法中可以指定宽度width=或者height=,两者取其一就可以了。
一点补充
大神Adrian Rosebrock自己维护了一个个人博客网站,地址是 https://www.pyimagesearch.com, 不定期放出计算机视觉及人工智能相关的教程,解释详尽,图文并茂,更赞的是还附带全部源码,非常值得经常去逛逛。