在Python中使用OpenCV裁剪图像

什么是裁剪?

裁剪是从摄影或插图图像中去除不需要的外部区域。该过程通常包括去除图像的某些外围区域,以从图片中去除多余的垃圾,改善其取景,改变纵横比,或使主题与背景突出或分离。

我们将使用 OpenCV-python (cv2)的这些函数,

  1. imread():此函数就像它采用了文件的绝对路径并读取了整个图像一样,在读取了整个图像之后,它返回给我们图像,并将该图像存储在变量中。

  2. imshow():此功能将显示一个窗口(具有指定的窗口名称),其中包含由 imread() 功能。

  3. shape:该函数将返回高度宽度,和的图像的

让我们举个例子

list a=[1,2,3,4,5,6,7,8,9]

现在,我只想要4到8之间的元素
(包括4和8),所以我们要做的是:

print(a[3:8])
结果会是 : [4,5,6,7,8]

裁剪图像的Python程序

# 导入模块
import cv2

img=cv2.imread("/home/abhinav/PycharmProjects/untitled1/a.jpg")

# 借助读取图像
# (指定绝对路径)
# Imread ()函数,并将其存储在变量 img 中
cv2.imshow("Original Image",img)

# 显示原始图像窗口 
# 命名原始图片
# with the help of imshow() function
height,width=img.shape[:2]

# 在帮助下存储高度和宽度
# 形状函数作为形状返回我们
# three things(height,width,layer) in the form of list
# 但是我们只想要高度和宽度
start_row,start_col=int(width*0.25),int(height*0.25)
end_row,end_col=int(width*0.75),int(height*0.75)

# start_row和start_col是坐标 
# 从我们将开始种植的地方
# end_row和end_col是结束坐标 
# 我们停在哪里
cropped=img[start_row:end_row,start_col:end_col]

# 使用idexing方法裁剪 
# 图像以这种方式
cv2.imshow("Cropped_Image",cropped)
# 使用 imshow ()函数显示 
# 另一个窗口
# 裁剪后的图片包含 
# 图片的一部分
cv2.waitKey(0)cv2.destroyAllWindows()

输出:

Python |  裁剪图像

您可以看到“裁剪的图像”和“原始图像”(裁剪的过程像是0.25到0.75,行和0.25到0.75列一样,您可以更改数字)。