文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

OpenCV图像旋转、平移、缩放操作代码

2022-12-27 12:01

关注

本文是 OpenCV图像视觉入门之路的第7篇文章,本文详细的进行了图像的缩放 cv2.resize()、旋转 cv2.flip()、平移 cv2.warpAffine()等操作。

1 缩放图片

缩放就是调整图片的大小,使用cv2.resize()函数实现缩放,可以按照比例缩放,也可以按照指定的大小缩放:
也可以指定缩放方法为线性插值INTER_LINEAR。

放过程中有五种插值方式:

cv2.INTER_NEAREST 最近邻插值cv2.INTER_LINEAR 线性插值cv2.INTER_AREA 基于局部像素的重采样,区域插值cv2.INTER_CUBIC 基于邻域4x4像素的三次插值cv2.INTER_LANCZOS4 基于8x8像素邻域的Lanczos插值

import cv2
from PIL import Image
import matplotlib.pyplot as plt
import numpy as np
 
# 按间距中的绿色按钮以运行脚本。
if __name__ == '__main__':
    image = cv2.imread('D:/Jupyter_Notebooks/0.jpg')
 
    # 从RGB色彩空间转换到HSV色彩空间
    hsv = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
 
    # 按照指定的宽度、高度缩放图片
    res = cv2.resize(image, (960, 540))
    # 按照比例缩放,如x,y轴均放大一倍
    res2 = cv2.resize(image, None, fx=2, fy=2, interpolation=cv2.INTER_LINEAR)
 
    cv2.imshow("image", image)
    cv2.imshow("res2", res2)
 
    cv2.waitKey(0)
    cv2.destroyAllWindows()

2 翻转图片

镜像翻转图片,可以用cv2.flip()函数:
其中,参数2 = 0:垂直翻转(沿x轴),参数2 > 0: 水平翻转(沿y轴),参数2 < 0: 水平垂直翻转。

import cv2
from PIL import Image
import matplotlib.pyplot as plt
import numpy as np
 
# 按间距中的绿色按钮以运行脚本。
if __name__ == '__main__':
    image = cv2.imread('D:/Jupyter_Notebooks/0.jpg')
 
    # 从RGB色彩空间转换到HSV色彩空间
    # image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
 
    dst = cv2.flip(image, 0)
 
 
    cv2.imshow("image", image)
    cv2.imshow("res2", dst)
 
    cv2.waitKey(0)
    cv2.destroyAllWindows()

2.1 垂直翻转

dst = cv2.flip(image, 0) 

2.2 水平翻转

dst = cv2.flip(image, 1) 

2.3 水平垂直翻转

dst = cv2.flip(image, -1)  

3 平移图片

要平移图片,我们需要定义下面这样一个矩阵,tx,ty是向x和y方向平移的距离:

 平移是用仿射变换函数cv2.warpAffine()实现的:

import cv2
from PIL import Image
import matplotlib.pyplot as plt
import numpy as np
 
# 按间距中的绿色按钮以运行脚本。
if __name__ == '__main__':
    image = cv2.imread('D:/Jupyter_Notebooks/0.jpg')
 
    # 获得图片的高、宽
    rows, cols = image.shape[:2]
 
    # 定义平移矩阵,需要是numpy的float32类型 x轴平移100,y轴平移500
    M = np.float32([[1, 0, 100], [0, 1, 200]])
    
    # 用仿射变换实现平移
    dst = cv2.warpAffine(image, M, (cols, rows))
 
    # cv2.imshow("image", image)
    cv2.imshow("res2", dst)
 
    cv2.waitKey(0)
    cv2.destroyAllWindows()

到此这篇关于OpenCV 图像旋转、平移、缩放操作代码的文章就介绍到这了,更多相关OpenCV 图像旋转内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯