基本的Python OpenCV裁剪和裁剪

guicsvcw  于 2023-10-24  发布在  Python
关注(0)|答案(2)|浏览(146)

有人能帮我一个小裁剪算法?它的openCV..我试图弄清楚这一点。我知道的方法是crop = image[y:y1,x:x1]。如果我有一个图像与new_dimensionXxnew_dimensionY像素,我想裁剪它到相同的宽度,但高度略高于121px以上的pointOftenX。我怎么能做到这一点?
还有一个问题

image = cv2.resize(image,(int(new_dimensionX), int(new_dimensionY)))
cv2.imwrite("test6.jpg", image)

文件test6.jpg没有反映在它上面的行中所做的调整,为什么?

lf5gs5x2

lf5gs5x21#

当你用imshow()显示调整后的图像时,它会在屏幕上显示图像,并根据图像像素改变显示窗口的大小。当你用图像查看器打开图像时,它会以固定的窗口大小打开图像,窗口大小不依赖于图像像素
OpenCV提供了一个名为resize的函数来实现图像缩放。
1.通过提供所需尺寸
1.通过给出比例因子
如果不指定大小(通过使用None),则需要X和Y缩放因子
同时提供
缩放大小

import cv2
filename = "path_to_image"

oriimage = cv2.imread(filename)

print oriimage.shape
newx,newy = oriimage.shape[1]/4,oriimage.shape[0]/4 #new size (w,h)

newimage = cv2.resize(oriimage,(newx,newy))

print newimage.shape

cv2.imshow("original image",oriimage)
cv2.imshow("resize image",newimage)

cv2.waitKey(0)

缩放比例

import cv2
filename = "path_to_image"

image = cv2.imread(filename) 

small = cv2.resize(image, (0,0), fx=0.5, fy=0.5) 

large = cv2.resize(image, (0,0), fx=1.5, fy=1.5)

cv2.imshow("small image",small)
cv2.imshow("large image",large)

#To save rescale image
cv2.imwrite('s.jpg',small)
cv2.imwrite('l.jpg',large)

cv2.waitKey(0)

**resize()**方法详细参数
在 *opencv中裁剪图像

import cv2
im_path = "path/to/image"
img = cv2.imread(im_path)

crop_img = img[0:400, 0:300] # Crop from {x, y, w, h } => {0, 0, 300, 400}

cv2.imshow("cropped", crop_img)
cv2.waitKey(0)

Opencv imread方法读取图像并返回numpy数组,numpy数组的大小等于图像数组。如果你想裁剪图像,只需选择一个数组

img[0:400,0:300]

注意:其img[y:y + h,x:x + w] img取第一个y,第二个高度是x,第三个宽度是x

5m1hhzi4

5m1hhzi42#

import cv2
im_path = "path/to/image"
img = cv2.imread(im_path)

crop_img = img[0:400, 0:300] # Crop from {x, y, w, h } => {0, 0, 300, 400}

cv2.imshow("cropped", crop_img)
cv2.waitKey(0)

相关问题