图像尺寸及旋转—opencv实战3
【代码】图像尺寸及旋转—opencv实战3。
·
import cv2 as cv
image = cv.imread("opencv_logo.jpg")
crop = image[10:170, 40:200] # 利用numpy数组切片语法对图像进行区域截取;图像在OpenCV中以【行(高度y):列(宽度x)】存储,行从第10行到第170行,列从第40列到第200列
cv.imshow("crop", crop) # 创建名为"crop"的窗口,并显示裁剪后的图片
cv.waitKey(0) # 等待按下任意按键,程序暂停在这里,防止窗口一闪而过
resize_img = cv.resize(image,dsize=(300,300)) # 调用resize()函数,改变图像大小到指定尺寸;dsize=(宽度,高度),强制把图片改成300x300像素,不保持原始比例
cv.imshow('resize_img',resize_img)
cv.waitKey(0)
print('修改后:',resize_img.shape) # 打印缩放后图片的形状信息:(高度, 宽度, 通道数:彩色图为3(BGR),灰度图为1)
h, w, c= image.shape # 获取原始图片的 高度h、宽度w、通道数c
result1= cv.resize(image,(h*2,w*2),interpolation=cv.INTER_CUBIC) # 将尺寸改为 (原高度×2, 原宽度×2);interpolation=cv.INTER_CUBIC:指定插值算法为双三次插值,画质最好,适合放大
cv.imshow('result1',result1)
cv.waitKey(0)
# 另一种写法:dsize=(0,0)表示不指定具体尺寸;fx=2, fy=2 表示宽度、高度都放大2倍,效果和上面一样,不用手动计算宽高
result2= cv.resize(image,(0,0),fx=2, fy=2, interpolation=cv.INTER_CUBIC)
cv.imshow('result2',result2)
cv.waitKey(0)
result3=cv.flip(image,0) # 调用flip()函数实现旋转/镜像效果: 0 → 垂直翻转(上下颠倒);1 → 水平翻转(左右镜像); -1 → 水平+垂直同时翻转(旋转180度)
cv.imshow('result3',result3)
cv.waitKey(0)
cv.destroyAllWindows() # 关闭所有OpenCV创建的窗口,释放内存资源
更多推荐
所有评论(0)