如何建立翻转函数索引_python之图像仿射变换分析:图像翻转

前言

这次梳理的篇幅主要是涉及图像仿射变换图像翻转,利用python编程实现不同方式的图像翻转,对巩固自己的python知识也是很有帮助的,进一步的对图像处理的内容也是帮助很大的。

但更多的是抛砖引玉,希望对你们有所帮助。

感谢各位鼓励与支持,往期文章都在最后梳理出来了(●'◡'●)

接下来就以问题的形式展开梳理

利用flip函数实现翻转

flip函数原型

opencv中flip函数原型如下:

flip(src, flipCode[, dst]) -> dst

参数解析:

  • src 输入图片
  • 1 水平翻转 Horizontally (图片第二维度是column)
  • 0 垂直翻转 *Vertically * (图片第一维是row)
  • -1 同时水平翻转与垂直反转 Horizontally & Vertically

封装函数

为了使用方便, 你也可以封装一下旋转过程

示例代码:

def flip(image, direction):    if direction == "h":        flipped = cv2.flip(image, 1)    elif direction == "v":        flipped = cv2.flip(image, 0)    else:        # both horizontally and vertically        flipped = cv2.flip(image, -1)

具体源码及效果展示

具体源码如下

'''反转Demo'''import numpy as npimport cv2from matplotlib import pyplot as pltimg = cv2.imread('lena1.jpg')def bgr2rbg(img):    '''        将颜色空间从BGR转换为RBG    '''    return img[:,:,::-1]# 水平翻转flip_h = cv2.flip(img, 1)# 垂直翻转flip_v = cv2.flip(img, 0)# 同时水平翻转与垂直翻转flip_hv = cv2.flip(img, -1)plt.subplot(221)plt.title('SRC')plt.imshow(bgr2rbg(img))plt.subplot(222)plt.title('Horizontally')plt.imshow(bgr2rbg(flip_h))plt.subplot(223)plt.title('Vertically')plt.imshow(bgr2rbg(flip_v))plt.subplot(224)plt.title('Horizontally & Vertically')plt.imshow(bgr2rbg(flip_hv))plt.show()

原始图像:

a46d0ed38916e7959f948edc41170b26.png

原始图像

图像翻转图像:

d3b3e62ba9360a8b6df511702a40f63a.png

翻转图像


利用numpy的索引实现翻转

利用numpy中ndarray的索引, 我们可以非常方便地实现图像翻转。

# 水平翻转flip_h =  img[:,::-1]# 垂直翻转flip_v =  img[::-1]# 水平垂直同时翻转flip_hv =  img[::-1, ::-1]

具体源码及效果展示

具体源码如下

'''使用numpy的索引进行图像反转'''import cv2import numpy as npfrom matplotlib import pyplot as pltimg = cv2.imread('lena1.jpg')height,width,channel = img.shape# 水平翻转flip_h =  img[:,::-1]# 垂直翻转flip_v =  img[::-1]# 水平垂直同时翻转flip_hv =  img[::-1, ::-1]def bgr2rbg(img):    '''        将颜色空间从BGR转换为RBG    '''    return img[:,:,::-1]plt.subplot(221)plt.title('SRC')plt.imshow(bgr2rbg(img))plt.subplot(222)plt.title('Horizontally')plt.imshow(bgr2rbg(flip_h))plt.subplot(223)plt.title('Vertically')plt.imshow(bgr2rbg(flip_v))plt.subplot(224)plt.title('Horizontally & Vertically')plt.imshow(bgr2rbg(flip_hv))plt.show()

原始图像:

a46d0ed38916e7959f948edc41170b26.png

原始图像

翻转后的图像:

a5418dcf35996f83884d17d6ef58d76b.png

翻转后的图像


利用wrapAffine实现翻转

数学原理推导

注: width 代表图像的宽度; height代表图像的高度

水平翻转的变换矩阵

fd7a5375277b41174eb3633f78ad5ac8.png

水平翻转的变换矩阵

垂直翻转的变换矩阵:

5695870fb4096825c01affb989d334e4.png

垂直翻转的变换矩阵

同时进行水平翻转与垂直翻转:

87064bc3fe4a74608bd7fe488e58ab7b.png

同时进行水平翻转与垂直翻转

具体源码及效果展示

具体源码如下

'''使用仿射矩阵实现反转'''import cv2import numpy as npfrom matplotlib import pyplot as pltimg = cv2.imread('lena1.jpg')height,width,channel = img.shape# 水平翻转M1 = np.float32([[-1, 0, width], [0, 1, 0]])flip_h =  cv2.warpAffine(img, M1, (width, height))# 垂直翻转M2 = np.float32([[1, 0, 0], [0, -1, height]])flip_v =  cv2.warpAffine(img, M2, (width, height))# 水平垂直同时翻转M3 = np.float32([[-1, 0, width], [0, -1, height]])flip_hv =  cv2.warpAffine(img, M3, (width, height))def bgr2rbg(img):    '''        将颜色空间从BGR转换为RBG    '''    return img[:,:,::-1]plt.subplot(221)plt.title('SRC')plt.imshow(bgr2rbg(img))plt.subplot(222)plt.title('Horizontally')plt.imshow(bgr2rbg(flip_h))plt.subplot(223)plt.title('Vertically')plt.imshow(bgr2rbg(flip_v))plt.subplot(224)plt.title('Horizontally & Vertically')plt.imshow(bgr2rbg(flip_hv))plt.show()

原始图像:

a46d0ed38916e7959f948edc41170b26.png

原始图像

翻转后的图像:

fb40556d2f0d3755c009c5fbfa369ca8.png

翻转后的图像


「❤️ 感谢大家」

如果你觉得这篇内容对你挺有有帮助的话:

  1. 点赞支持下吧,让更多的人也能看到这篇内容(收藏不点赞,都是耍流氓 -_-)
  2. 欢迎在留言区与我分享你的想法,也欢迎你在留言区记录你的思考过程。
  3. 觉得不错的话,也可以阅读近期梳理的文章(感谢各位的鼓励与支持):
  • python开发之HighGUI上位机开发(一)(420+[赞])
  • python开发之HighGUI上位机开发(二)(680+[赞])
  • python开发(三)—项目实战:可变色画布和自制绘图板(580+[赞])
  • 教你用python操作Excel、Word、CSV,一文够了(160+[赞])
  • 教你用python轻松解析XML和PDF,一文够了,赶紧码住(210+[赞])
  • 电脑收藏的10个网站,知乎超100万人推荐,让你办公事半功倍(230+[赞])
  • 基于混沌Logistic加密算法的图片加密与还原(220+[赞])
  • 分享 | 36张不可思议的数学知识动图,让你对数学怦然心动(600+[赞])
  • 手把手教你进行pip换源(100+[赞])
  • 聊天小白震撼来临!快用python教她说话吧,你就不寂寞了(240+[赞])
  • 教你用python编写二十几行的代码绘制动态烟花(210+[赞])
  • Python之Matplotlib数据可视化一:简易线形图(310+[赞])
  • Python之Matplotlib可视化二:密度图与等高线图(330+[赞])
  • python之图像仿射变换分析:原理+图像平移(310+[赞])
  • 超全Python图像处理讲解(多图预警)(340+[赞])
  • python之仿射变换分析:图像旋转及数学原理推导(310+[赞])

「❤️ 资源传送门」

1. 扫码关注【做一个柔情的程序猿】公众号

2. 在【做一个柔情的程序猿】后台回复 【python资料】【2020秋招】 获取相应资料

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值