【Python+OpenCV 图像的缩放和裁剪】

Python+OpenCV 图像的缩放和裁剪

代码部分

import cv2
import numpy as np

img = cv2.imread("Photos/1.bmp")
print(img.shape)

imgResize = cv2.resize(img,(1000,500)) #改变图像大小
print(imgResize.shape)

imgCrop = img[59:340,352:495]  #图像剪裁

cv2.imshow("Original Image",img)
cv2.imshow("Image Resize",imgResize)
cv2.imshow("Image Crop",imgCrop)

cv2.waitKey(0)

实现效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,以下是利用Python+opencv图像进行几何变换的完整代码。在这个示例中,我们使用了OpenCV库,它是一个广泛使用的计算机视觉库,可以用于处理图像和视频。 ```python import cv2 import numpy as np # 读取原始图像 img = cv2.imread('image.jpg') # 缩放变换 scale_percent = 50 # 缩放比例 width = int(img.shape[1] * scale_percent / 100) # 新图像宽度 height = int(img.shape[0] * scale_percent / 100) # 新图像高度 dim = (width, height) resized = cv2.resize(img, dim, interpolation = cv2.INTER_AREA) # 旋转变换 angle = 45 # 旋转角度 rotation_matrix = cv2.getRotationMatrix2D((img.shape[1]/2, img.shape[0]/2), angle, 1) rotated = cv2.warpAffine(img, rotation_matrix, (img.shape[1], img.shape[0])) # 平移变换 x = 50 # 水平方向平移像素数 y = 100 # 垂直方向平移像素数 translation_matrix = np.float32([[1, 0, x], [0, 1, y]]) translated = cv2.warpAffine(img, translation_matrix, (img.shape[1], img.shape[0])) # 裁剪变换 x1 = 100 # 左上角横坐标 y1 = 100 # 左上角纵坐标 x2 = 300 # 右下角横坐标 y2 = 300 # 右下角纵坐标 cropped = img[y1:y2, x1:x2] # 镜像变换 mirrored = cv2.flip(img, 1) # 在同一个窗口内分成六个子窗口来分别显示原图和变换后的图像 cv2.namedWindow('Image', cv2.WINDOW_NORMAL) cv2.resizeWindow('Image', 800, 800) cv2.imshow('Image', np.hstack((img, resized, rotated, translated, cropped, mirrored))) cv2.waitKey(0) cv2.destroyAllWindows() ``` 在这个示例中,我们首先读取了一个名为“image.jpg”的原始图像,然后分别进行了缩放、旋转、平移、裁剪和镜像变换,并将原图和变换后的图像分成六个子窗口来进行显示。在显示过程中,我们使用了`cv2.namedWindow()`和`cv2.resizeWindow()`来设置窗口大小和名称,使用`cv2.imshow()`来显示图像,使用`cv2.waitKey()`来等待用户按下任意键,最后使用`cv2.destroyAllWindows()`来关闭窗口。 注意,为了将六个子窗口合并成一个窗口,我们使用了`np.hstack()`函数。该函数用于沿水平方向拼接多个数组,使它们成为单个数组。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LPY。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值