范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Python图像处理六。图像缩放图像旋转图像翻转与图像平移

  也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大
  少走了弯路,也就错过了风景,无论如何,感谢经历
  更多关于Android安全的知识,可前往:https://blog.csdn.net/ananasorangey/category11955914.html
  本篇文章转载自公众号[娜璋AI安全之家]
  该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门、OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子、图像增强技术、图像分割等,后期结合深度学习研究图像识别、图像分类、目标检测应用。
  前一篇文章介绍Python调用OpenCV实现图像融合、图像加减法、图像逻辑运算和类型转换。这篇文章将详细讲解图像缩放、图像旋转、图像翻转、图像平移。希望文章对您有所帮助,如果有不足之处,还请海涵~  一.图像缩放  二.图像旋转  三.图像翻转  四.图像平移
  该系列在github所有源代码:  https://github.com/eastmountyxz/  ImageProcessing-Python
  前文回顾(下面的超链接可以点击喔):  [Python图像处理] 一.图像处理基础知识及OpenCV入门函数  [Python图像处理] 二.OpenCV+Numpy库读取与修改像素  [Python图像处理] 三.获取图像属性、兴趣ROI区域及通道处理  [Python图像处理] 四.图像平滑之均值滤波、方框滤波、高斯滤波、中值滤波及双边滤波  [Python图像处理] 五.图像融合、加法运算及图像类型转换  [Python图像处理] 六.图像缩放、图像旋转、图像翻转与图像平移
  学Python近八年,认识了很多大佬和朋友,感恩。由于在外求学且需要养娃,故在CSDN设置成了最低价收费专栏,觉得不错的可以购买抬爱;但作者的本意是帮助更多初学者入门,因此在github开源了所有代码,也在公众号同步更新。深知自己很菜,得拼命努力前行,编程也没有什么捷径,干就对了。希望未来能更透彻学习和撰写文章,同时非常感谢参考文献中的大佬们的文章和分享,共勉。
  - https://blog.csdn.net/eastmount   一.图像缩放
  图像缩放主要调用resize()函数实现,具体如下: result = cv2.resize(src, dsize[, result[. fx[, fy[, interpolation]]]])
  其中src表示原始图像,dsize表示缩放大小,fx和fy也可以表示缩放大小倍数,他们两个(dsize或fxfy)设置一个即可实现图像缩放。例如: result = cv2.resize(src, (160,160)) result = cv2.resize(src, None, fx=0.5, fy=0.5)
  图像缩放:设(x0, y0)是缩放后的坐标,(x, y)是缩放前的坐标,sx、sy为缩放因子,则公式如下:
  代码示例如下所示: #encoding:utf-8 import cv2   import numpy as np     #读取图片 src = cv2.imread("test.jpg")  #图像缩放 result = cv2.resize(src, (200,100)) print(result.shape)  #显示图像 cv2.imshow("src", src) cv2.imshow("result", result)  #等待显示 cv2.waitKey(0) cv2.destroyAllWindows()
  输出结果如下图所示,图像缩小为(200,100)像素。
  需要注意的是,代码中 cv2.resize(src, (200,100)) 设置的dsize是列数为200,行数为100。
  同样,可以获取原始图像像素再乘以缩放系数进行图像变换,代码如下所示。 #encoding:utf-8 import cv2   import numpy as np     #读取图片 src = cv2.imread("test.jpg") rows, cols = src.shape[:2] print(rows, cols)  #图像缩放 dsize(列,行) result = cv2.resize(src, (int(cols*0.6), int(rows*1.2)))  #显示图像 cv2.imshow("src", src) cv2.imshow("result", result)  #等待显示 cv2.waitKey(0) cv2.destroyAllWindows()
  输出结果如下图所示:
  最后讲解(fx,fy)缩放倍数的方法对图像进行放大或缩小。 #encoding:utf-8 import cv2   import numpy as np     #读取图片 src = cv2.imread("test.jpg") rows, cols = src.shape[:2] print(rows, cols)  #图像缩放 result = cv2.resize(src, None, fx=0.3, fy=0.3)  #显示图像 cv2.imshow("src", src) cv2.imshow("result", result)  #等待显示 cv2.waitKey(0) cv2.destroyAllWindows()
  最后输出的结果如下图所示,这是按例比0.3*0.3缩小的。
  二.图像旋转
  图像旋转主要调用getRotationMatrix2D()函数和warpAffine()函数实现,绕图像的中心旋转,具体如下: M = cv2.getRotationMatrix2D( (cols/2, rows/2), 30, 1)
  参数分别为:旋转中心、旋转度数、scalerotated = cv2.warpAffine( src, M, (cols, rows))
  参数分别为:原始图像、旋转参数、原始图像宽高
  图像旋转:设(x0, y0)是旋转后的坐标,(x, y)是旋转前的坐标,(m,n)是旋转中心,a是旋转的角度,(left,top)是旋转后图像的左上角坐标,则公式如下:
  代码如下所示: #encoding:utf-8 import cv2   import numpy as np     #读取图片 src = cv2.imread("test.jpg")  #原图的高、宽 以及通道数 rows, cols, channel = src.shape  #绕图像的中心旋转 #参数:旋转中心 旋转度数 scale M = cv2.getRotationMatrix2D((cols/2, rows/2), 30, 1) #参数:原始图像 旋转参数 元素图像宽高 rotated = cv2.warpAffine(src, M, (cols, rows))  #显示图像 cv2.imshow("src", src) cv2.imshow("rotated", rotated)  #等待显示 cv2.waitKey(0) cv2.destroyAllWindows()
  输出结果如下图所示:
  如果设置-90度,则核心代码和图像如下所示。 M = cv2.getRotationMatrix2D(  (cols/2, rows/2), -90, 1)  rotated = cv2.warpAffine(  src, M, (cols, rows))
  三.图像翻转
  图像翻转在OpenCV中调用函数flip()实现,原型如下: dst = cv2.flip(src, flipCode)
  其中src表示原始图像,flipCode表示翻转方向,如果flipCode为0,则以X轴为对称轴翻转,如果fliipCode>0则以Y轴为对称轴翻转,如果flipCode<0则在X轴、Y轴同时翻转。
  代码如下所示: #encoding:utf-8 import cv2   import numpy as np import matplotlib.pyplot as plt   #读取图片 img = cv2.imread("test.jpg") src = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)  #图像翻转 #0以X轴为对称轴翻转 >0以Y轴为对称轴翻转 <0X轴Y轴翻转 img1 = cv2.flip(src, 0) img2 = cv2.flip(src, 1) img3 = cv2.flip(src, -1)  #显示图形 titles = ["Source", "Image1", "Image2", "Image3"]   images = [src, img1, img2, img3]   for i in range(4):      plt.subplot(2,2,i+1), plt.imshow(images[i], "gray")      plt.title(titles[i])      plt.xticks([]),plt.yticks([])   plt.show()
  输出结果如下图所示:
  四.图像平移
  图像平移:设(x0, y0)是缩放后的坐标,(x, y)是缩放前的坐标,dx、dy为偏移量,则公式如下:
  图像平移首先定义平移矩阵M,再调用warpAffine()函数实现平移,核心函数如下: M = np.float32([[1, 0, x], [0, 1, y]]) shifted = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))
  完整代码如下所示: #encoding:utf-8 import cv2   import numpy as np import matplotlib.pyplot as plt   #读取图片 img = cv2.imread("test.jpg") image = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)  #图像平移 下、上、右、左平移 M = np.float32([[1, 0, 0], [0, 1, 100]]) img1 = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))  M = np.float32([[1, 0, 0], [0, 1, -100]]) img2 = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))  M = np.float32([[1, 0, 100], [0, 1, 0]]) img3 = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))  M = np.float32([[1, 0, -100], [0, 1, 0]]) img4 = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))  #显示图形 titles = [ "Image1", "Image2", "Image3", "Image4"]   images = [img1, img2, img3, img4]   for i in range(4):      plt.subplot(2,2,i+1), plt.imshow(images[i], "gray")      plt.title(titles[i])      plt.xticks([]),plt.yticks([])   plt.show()
  输出结果如下图所示:
  五.总结
  本文主要讲解Python和OpenCV的图像基础处理,具体内容包括:  一.图像缩放  二.图像旋转  三.图像翻转  四.图像平移
  回想2018年当时写这篇文章的感言,不错!
  三尺讲台,三寸舌,
  三千桃李,三杆笔。
  再累再苦,站在讲台前就是最美的自己,几个月的烦恼和忧愁都已消失,真的好享受这种状态,仿佛散着光芒,终于给低年级的同学上课了越早培养编程兴趣越好,恨不能倾囊相授。即使当一辈子的教书匠,平平淡淡也喜欢,而且总感觉给学生讲课远不是课酬和职称所能比拟,这就是所谓的事业,所谓的爱好。
  源代码下载地址,记得帮忙点star和关注喔!  https://github.com/eastmountyxz/  ImageProcessing-Python
  2020年8月18新开的"娜璋AI安全之家",主要围绕Python大数据分析、网络空间安全、人工智能、Web渗透及攻防技术进行讲解,同时分享CCF、SCI、南核北核论文的算法实现。娜璋之家会更加系统,并重构作者的所有文章,从零讲解Python和安全,写了近十年文章,真心想把自己所学所感所做分享出来,还请各位多多指教,真诚邀请您的关注!谢谢。
  (By:Eastmount 2021-03-16 夜于武汉 )
  参考文献,在此感谢这些大佬,共勉!  [1] 冈萨雷斯. 数字图像处理(第3版)[M]. 电子工业出版社, 2013. [2] 毛星云, 冷雪飞. OpenCV3编程入门[M]. 电子工业出版社, 2015. [3] https://blog.csdn.net/Eastmount
  你以为你有很多路可以选择,其实你只有一条路可以走

vivo折叠屏新机曝光外观设计变化不大,硬件配置提升明显根据9月16日的最新消息,其实早在上个月,vivoXFold折叠屏新机(型号为V2229A)便已入网工信部,支持5G网络双卡双待。现在,共工信部公布了该机入网证件照,看起来跟viv何必死磕苹果华为?这三款骁龙8手机性价比超高,口碑还很好这两天华为Mate50和iPhone14可谓是出尽了风头,成为了很多人的换机首选。不过,相信还是有不少人和我一样,预算不多,或者不爱追求高端旗舰,更注重实用。如果你也抱有这些想法,一夜资讯威少去CBA,湖人晒照詹姆斯,东契奇首败,张镇麟梦碎NBA北京时间9月5日,nba发生了一些非常有意思的事,现整理总结如下威少来CBA,詹姆斯浓眉备战新赛季,东契奇首败,张镇麟NbA梦碎。1威少将去cba?播客主持人比尔西蒙斯在节目中表示威少索要2亿合同续约湖人自信实力不输哈登联手詹姆斯毁了钱途洛杉矶时报记者乔万布哈最新报道,威斯布鲁克原本希望以5年2亿美元续约长期留在湖人,由于他和詹姆斯在比赛里无法共存,最终没能如愿完成续约,威少明年夏天将继续寻求一份类似的续约合同。今打不过就加入?iPhone14绝佳配件小米魅族新无线磁吸充电宝上架文咸谈科技馆随着iPhone14系列的上市,现在整个是手机市场几乎是围绕着它转,稍微有什么新变化,就疯狂上热搜,像是今天很多用户已经收到了iPhone14Pro了,但因为灵动岛的软BlakeLively又怀孕了,她和丈夫即将迎来第四个孩子本周四,这位曾出演绯闻女孩的女演员在纽约举行的第十届福布斯权力女性峰会上首次亮相,让粉丝们大为震惊。35岁的布莱克莱弗利(BlakeLively)穿着闪闪发光的金色连衣裙,搭配白色热效率44。14混动做得到根据国际能源署公布数据,2019年,在全球二氧化碳排放量各行业占比中,交通占比为24,排名第二。降低碳排放实现碳中和,交通至关重要,这是全球共识。作为主要交通工具之一,汽车是交通达手机摄影哪家强?这些影像旗舰手机可别错过随着近年来手机厂商和专业相机厂商合作,比如徕卡蔡司和哈苏等等,手机的摄影能力得到了大大提升,甚至一些手机还能媲美专业的相机。从此之后,出行旅游再也不用背着沉重的单反相机了,随时随地五大发电的储能布局图文国际能源网团队储能头条在双碳目标推动下,国家多部委多省地市一系列支持新能源政策随之而来,覆盖共享储能优先并网拉大峰谷电价差等多项措施,以提升发电侧用户侧等配储意愿。新能源发电行业国军司令范绍增起义后,他心爱的7个娇妻如何处理?中央是何态度上世纪90年代,抗战剧傻儿司令火爆一时,主角樊哈儿梳着中分,幽默风趣憨态可掬,深受广大观众的喜爱。但鲜为人知的是,樊哈儿的原型,其实是民国年间,名噪一时的川军军阀范绍增。范绍增从绿1950年,代总理上任接替周总理,毛主席钦点的这一人是谁?1950年,毛主席钦点一人接替周总理,成为了暂时的代总理,并担任了两个月的总理职务,当时究竟发生了什么?周总理究竟去了哪里呢?而这个代总理又是谁呢?感兴趣的小伙伴记得点赞关注。周总
深耕高温合金数十载,图南股份全产业链一体化贯通的典范下(报告出品方分析师广发证券孟祥杰巨国贤宫帅)四从高温合金商业模式看公司领先的业务布局战略(一)变形高温合金高资本开支是主要壁垒,对企业产品结构要求高不同技术路线的高温合金生产制备工创新出海,迈瑞医疗如何发力国际智慧医疗?来源器械之家,未经授权不得转载近日,全球规模最大医疗贸易展之一的阿拉伯国际医疗设备展(ArabHealth2023)在迪拜成功闭幕。展会期间,全球领先的医疗器械和医疗解决方案供应商挑战洛希极限?科学家在不可能的地方发现行星环来源新华社一支国际天文研究团队发现太阳系边缘一颗名为创神星的小行星拥有一个行星环,而这个行星环的存在挑战现有认知。依据天文学界目前普遍接受并应用的洛希极限推论,那个位置不可能出现行2月14日现三星一线天文奇观,在广州可以这样观测2月14日(下周二)晚上,浩茫苍穹将出现由恒星和行星联手排列的三星一线奇趣天象,御夫座最明亮的恒星五车二距离地球最近的外行星火星和金牛座最明亮的恒星毕宿五,三星由北至南依次排成一条2022年累计销量5300万台斩获十大奖项这款新国产手机有何特别之处毋庸置疑,手机行业和通信行业之间是高度关联的,每一代通信标准的诞生,几乎都会催生一批新的手机巨头,同时把原来的手机巨头比下去,这就叫青出于蓝而胜于蓝。其中,在1G通信网络时代,摩托中国天眼联手韦伯望远镜,揭开3亿光年外,星系气体结构之谜在贵州平塘县大窝凼洼地,有一口巨大的锅填满了山谷。这里就是全球最大的射电望远镜所在地,被称为中国天眼,自落成启用以来,帮助全世界的科学家在天文学领域取得了一系列的科研成果,拓展了人首科指数十年增近八成,北京创新服务及创新绩效快速攀升北京日报客户端记者孙奇茹2月12日,首都科技发展战略研究院课题组发布首都科技创新发展指数2022(简称首科指数2022)。首科指数2022以创新驱动北京中国式现代化建设为主题开展研比日本大5倍的万亩樱花美疯了,背后这座闽西小城更被低估太久!头条创作挑战赛这座珍藏了全国最美樱花海的小城,值得为它再去一次福建!鼓浪屿,泉州武夷山土楼东山岛说起福建,大多数人会想起这些标签。但一到春天,脑海里的福建印象就只剩下了永福樱花园那ChatGPT刨根问底,中国科研的整体水平何时能超过美国?中国的科研水平何时才能超过美国?不能准确预测中国科研水平什么时候能超过美国。作为全球两个科技大国,中国和美国都在不断加强自己的科研能力,因此这是一个相当复杂的问题。但是,中国的科研美国宇航局的露西号飞船今年将访问的小行星有了新名字这是个约会,露西(Lucy)将在11月1日与丁克尼(Dinkinesh)什会面。美国宇航局的露西任务于2021年10月发射,开始了探索远在木星轨道附近的特洛伊小行星的漫长旅程。直到三星GalaxyA144G现身NBTC,M545G通过蓝牙认证IT之家2月12日消息,三星上个月早些时候推出了GalaxyA145G机型,但似乎该公司还计划在部分市场推出4G版本,目前该版本已经出现在泰国的NBTC认证网站上。三星Galaxy