优草派  >   Python

Python怎么使用opencv裁剪图片?Python第三方库opencv如何剪切图片

罗西汉            来源:优草派

python第三方库opencv就是一个专门用来操作视频和图片的软件包,而该库也提供了不少的方法来完成图片裁剪操作。下面小编会给大家分享几个比较好用的图片裁剪方法,想要学习这个知识点的小伙伴可以继续往下阅读完这篇文章哦。

Python怎么使用opencv裁剪图片?Python第三方库opencv如何剪切图片

一、坐标

opencv库裁剪图片甚至都不需要去调用方法,直接通过指定坐标就能够将图片指定位置裁剪出来。这是因为该库将图片读取进来之后所得到就是数组形式,而这个数组之中所有的元素数量和图片的长宽相等。只需要将指定长度和宽度位置的坐标放在图像中括号切片语法之中,然后再将其保存为图片类型即可完成截取操作,代码如下所示:

import cv2
img = cv2.imread("./data/cut/thor.jpg")
cropped = img[0:128, 0:512]
cv2.imwrite("./data/cut/cv_cut_thor.jpg", cropped)

二、手动裁剪

opencv甚至还可以通过selectROI()方法来将一个图像打开,然后用鼠标框出指定的范围将这个范围的图像裁剪下来。该方法使用时需要先将要裁剪的图片通过方法读取进来,然后再调用imshow()方法就可以显示图片,代码如下所示:

import cv2
img = 'D:/nd_cats.jpg'
img = cv2.imread(img)
cv2.imshow('original', img)

然后就是要去调用selectROI()方法了,该方法需要传入四个参数,分别为窗口名称、裁剪的图像、是否显示十字线、是否是从中心开始画框。该方法调用之后会需要使用鼠标来框中裁剪区域,然后返回的就是该区域顶点位置坐标。接着再去用切片方式来将该坐标的图像剪切下来保存即可,代码如下所示:

roi = cv2.selectROI(windowName="original", img=img, showCrosshair=True, fromCenter=False)
x, y, w, h = roi
crop = img[y:y+h, x:x+w]
cv2.imwrite('D:/ancrop.jpg', crop)
cv2.waitKey(0)
cv2.destroyAllWindows()

以上就是关于“Python怎么使用opencv裁剪图片?Python第三方库opencv如何剪切图片”的全部内容了,希望对你有所帮助。

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。