Python图像处理六。图像缩放图像旋转图像翻转与图像平移
也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大
少走了弯路,也就错过了风景,无论如何,感谢经历
更多关于Android安全的知识,可前往:https:blog。csdn。netananasorangeycategory11955914。html
本篇文章转载自公众号〔娜璋AI安全之家〕
该系列文章是讲解PythonOpenCV图像处理知识,前期主要讲解图像入门、OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子、图像增强技术、图像分割等,后期结合深度学习研究图像识别、图像分类、目标检测应用。
前一篇文章介绍Python调用OpenCV实现图像融合、图像加减法、图像逻辑运算和类型转换。这篇文章将详细讲解图像缩放、图像旋转、图像翻转、图像平移。希望文章对您有所帮助,如果有不足之处,还请海涵一。图像缩放二。图像旋转三。图像翻转四。图像平移
该系列在github所有源代码:https:github。comeastmountyxzImageProcessingPython
前文回顾(下面的超链接可以点击喔):〔Python图像处理〕一。图像处理基础知识及OpenCV入门函数〔Python图像处理〕二。OpenCVNumpy库读取与修改像素〔Python图像处理〕三。获取图像属性、兴趣ROI区域及通道处理〔Python图像处理〕四。图像平滑之均值滤波、方框滤波、高斯滤波、中值滤波及双边滤波〔Python图像处理〕五。图像融合、加法运算及图像类型转换〔Python图像处理〕六。图像缩放、图像旋转、图像翻转与图像平移
学Python近八年,认识了很多大佬和朋友,感恩。由于在外求学且需要养娃,故在CSDN设置成了最低价收费专栏,觉得不错的可以购买抬爱;但作者的本意是帮助更多初学者入门,因此在github开源了所有代码,也在公众号同步更新。深知自己很菜,得拼命努力前行,编程也没有什么捷径,干就对了。希望未来能更透彻学习和撰写文章,同时非常感谢参考文献中的大佬们的文章和分享,共勉。
https:blog。csdn。neteastmount一。图像缩放
图像缩放主要调用resize()函数实现,具体如下:resultcv2。resize(src,dsize〔,result〔。fx〔,fy〔,interpolation〕〕〕〕)
其中src表示原始图像,dsize表示缩放大小,fx和fy也可以表示缩放大小倍数,他们两个(dsize或fxfy)设置一个即可实现图像缩放。例如:resultcv2。resize(src,(160,160))resultcv2。resize(src,None,fx0。5,fy0。5)
图像缩放:设(x0,y0)是缩放后的坐标,(x,y)是缩放前的坐标,sx、sy为缩放因子,则公式如下:
代码示例如下所示:encoding:utf8importcv2importnumpyasnp读取图片srccv2。imread(test。jpg)图像缩放resultcv2。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:utf8importcv2importnumpyasnp读取图片srccv2。imread(test。jpg)rows,colssrc。shape〔:2〕print(rows,cols)图像缩放dsize(列,行)resultcv2。resize(src,(int(cols0。6),int(rows1。2)))显示图像cv2。imshow(src,src)cv2。imshow(result,result)等待显示cv2。waitKey(0)cv2。destroyAllWindows()
输出结果如下图所示:
最后讲解(fx,fy)缩放倍数的方法对图像进行放大或缩小。encoding:utf8importcv2importnumpyasnp读取图片srccv2。imread(test。jpg)rows,colssrc。shape〔:2〕print(rows,cols)图像缩放resultcv2。resize(src,None,fx0。3,fy0。3)显示图像cv2。imshow(src,src)cv2。imshow(result,result)等待显示cv2。waitKey(0)cv2。destroyAllWindows()
最后输出的结果如下图所示,这是按例比0。30。3缩小的。
二。图像旋转
图像旋转主要调用getRotationMatrix2D()函数和warpAffine()函数实现,绕图像的中心旋转,具体如下:Mcv2。getRotationMatrix2D((cols2,rows2),30,1)
参数分别为:旋转中心、旋转度数、scalerotatedcv2。warpAffine(src,M,(cols,rows))
参数分别为:原始图像、旋转参数、原始图像宽高
图像旋转:设(x0,y0)是旋转后的坐标,(x,y)是旋转前的坐标,(m,n)是旋转中心,a是旋转的角度,(left,top)是旋转后图像的左上角坐标,则公式如下:
代码如下所示:encoding:utf8importcv2importnumpyasnp读取图片srccv2。imread(test。jpg)原图的高、宽以及通道数rows,cols,channelsrc。shape绕图像的中心旋转参数:旋转中心旋转度数scaleMcv2。getRotationMatrix2D((cols2,rows2),30,1)参数:原始图像旋转参数元素图像宽高rotatedcv2。warpAffine(src,M,(cols,rows))显示图像cv2。imshow(src,src)cv2。imshow(rotated,rotated)等待显示cv2。waitKey(0)cv2。destroyAllWindows()
输出结果如下图所示:
如果设置90度,则核心代码和图像如下所示。Mcv2。getRotationMatrix2D((cols2,rows2),90,1)rotatedcv2。warpAffine(src,M,(cols,rows))
三。图像翻转
图像翻转在OpenCV中调用函数flip()实现,原型如下:dstcv2。flip(src,flipCode)
其中src表示原始图像,flipCode表示翻转方向,如果flipCode为0,则以X轴为对称轴翻转,如果fliipCode0则以Y轴为对称轴翻转,如果flipCode0则在X轴、Y轴同时翻转。
代码如下所示:encoding:utf8importcv2importnumpyasnpimportmatplotlib。pyplotasplt读取图片imgcv2。imread(test。jpg)srccv2。cvtColor(img,cv2。COLORBGR2RGB)图像翻转0以X轴为对称轴翻转0以Y轴为对称轴翻转0X轴Y轴翻转img1cv2。flip(src,0)img2cv2。flip(src,1)img3cv2。flip(src,1)显示图形titles〔Source,Image1,Image2,Image3〕images〔src,img1,img2,img3〕foriinrange(4):plt。subplot(2,2,i1),plt。imshow(images〔i〕,gray)plt。title(titles〔i〕)plt。xticks(〔〕),plt。yticks(〔〕)plt。show()
输出结果如下图所示:
四。图像平移
图像平移:设(x0,y0)是缩放后的坐标,(x,y)是缩放前的坐标,dx、dy为偏移量,则公式如下:
图像平移首先定义平移矩阵M,再调用warpAffine()函数实现平移,核心函数如下:Mnp。float32(〔〔1,0,x〕,〔0,1,y〕〕)shiftedcv2。warpAffine(image,M,(image。shape〔1〕,image。shape〔0〕))
完整代码如下所示:encoding:utf8importcv2importnumpyasnpimportmatplotlib。pyplotasplt读取图片imgcv2。imread(test。jpg)imagecv2。cvtColor(img,cv2。COLORBGR2RGB)图像平移下、上、右、左平移Mnp。float32(〔〔1,0,0〕,〔0,1,100〕〕)img1cv2。warpAffine(image,M,(image。shape〔1〕,image。shape〔0〕))Mnp。float32(〔〔1,0,0〕,〔0,1,100〕〕)img2cv2。warpAffine(image,M,(image。shape〔1〕,image。shape〔0〕))Mnp。float32(〔〔1,0,100〕,〔0,1,0〕〕)img3cv2。warpAffine(image,M,(image。shape〔1〕,image。shape〔0〕))Mnp。float32(〔〔1,0,100〕,〔0,1,0〕〕)img4cv2。warpAffine(image,M,(image。shape〔1〕,image。shape〔0〕))显示图形titles〔Image1,Image2,Image3,Image4〕images〔img1,img2,img3,img4〕foriinrange(4):plt。subplot(2,2,i1),plt。imshow(images〔i〕,gray)plt。title(titles〔i〕)plt。xticks(〔〕),plt。yticks(〔〕)plt。show()
输出结果如下图所示:
五。总结
本文主要讲解Python和OpenCV的图像基础处理,具体内容包括:一。图像缩放二。图像旋转三。图像翻转四。图像平移
回想2018年当时写这篇文章的感言,不错!
三尺讲台,三寸舌,
三千桃李,三杆笔。
再累再苦,站在讲台前就是最美的自己,几个月的烦恼和忧愁都已消失,真的好享受这种状态,仿佛散着光芒,终于给低年级的同学上课了越早培养编程兴趣越好,恨不能倾囊相授。即使当一辈子的教书匠,平平淡淡也喜欢,而且总感觉给学生讲课远不是课酬和职称所能比拟,这就是所谓的事业,所谓的爱好。
源代码下载地址,记得帮忙点star和关注喔!https:github。comeastmountyxzImageProcessingPython
2020年8月18新开的娜璋AI安全之家,主要围绕Python大数据分析、网络空间安全、人工智能、Web渗透及攻防技术进行讲解,同时分享CCF、SCI、南核北核论文的算法实现。娜璋之家会更加系统,并重构作者的所有文章,从零讲解Python和安全,写了近十年文章,真心想把自己所学所感所做分享出来,还请各位多多指教,真诚邀请您的关注!谢谢。
(By:Eastmount20210316夜于武汉)
参考文献,在此感谢这些大佬,共勉!〔1〕冈萨雷斯。数字图像处理(第3版)〔M〕。电子工业出版社,2013。〔2〕毛星云,冷雪飞。OpenCV3编程入门〔M〕。电子工业出版社,2015。〔3〕https:blog。csdn。netEastmount
你以为你有很多路可以选择,其实你只有一条路可以走
夜读丨与靠谱的人做事,和厚道的人交友,向乐观的人靠近绿标收听朗读音频文李思圆与靠谱的人做事有一句话说聪明人只能聊天,靠谱的人才适合共事。在生活和工作中,偶尔会遇到做事不让人放心的人。答应好的事,总是敷衍约定好的日期,总是拖延出了问题
子衿青青一袭轻纱遮红尘子衿青青文我站在岁月的远处,规划着未来去征程。回顾着那一幕,漫天的风雪吹动着年轮。故事如若风吹落叶,可是我还在人生舞台下苦等。。风雨飘打在脸上冲刷着几圈细纹内心的荒芜渲染了孤独摇曳
讲一讲南宁的烟火气总觉得所有的快乐都源于生活里的心动。就像下午或傍晚走在街头,天还未暗,灯却已点燃,来往车辆带起了喧嚣,昏黄的路灯下行人踏着零碎的落叶,向着家的方向,步履匆匆。有买菜回家做饭的,有穿
命苦的人,一般都有这些弱点所谓命苦的人,就是一辈子辛辛苦苦,却没有过上自己想要的生活,而是经历了很多人生的痛苦和磨难。有的人半生劳碌,半生凄苦,没有人关心爱护,没有人可以依赖。这样的人,就是命苦的人。有的人
自驾旅行之前,一定要做的那些准备,你都做了吗?时下,自驾旅行已经成为了越来越多人青睐的旅行方式。我也最爱自驾游,一来可以一路欣赏沿路风光,二来目的地的选择也更灵活,也能节省不少时间。不过,在自驾出行之前,我们也要做好相应的准备
真正的领导山上有很多猴子,很多游客慕名而来,想看看什么叫猴急屁股红。游客经常给猴子喂东西吃,如果猴子配合游客,做几个规定动作或自选动作,就会得到更多奖赏。猴子越闹,游客越欢。尽管猴子可以吃到
雨中漫爬白云山,朦胧的雾霾,寒风刺骨前些年让外地游客印象深刻的是越秀山上的五羊雕塑,之后是中信广场,现在则是三件套,即花城广场两侧的东西塔和海心沙对面的广州塔,很多外地游客到广州打卡时,首选的观光地点就是花城广场,或
杨丽萍表演艺术中心,大理项目标签设计公司朱锫建筑设计事务所位置中国类型建筑材料木材混凝土ETFE膜标签云南大理曲面屋顶分类公共空间剧院文化建筑露天剧场分享农村建筑那些事美丽乡村新农村自建房表演艺术中心位于
90年代坐火车,真的太难受了头条创作挑战赛90年代末,我在湖南长沙上军校,老家在河北,那时候的火车速度太慢了,从我家到达长沙,需要整整24小时,这种煎熬可想而知!而我自己还有个毛病,一坐火车就晕车,所以,24
红红的果实满枝头,南天竹美丽动人周末这天,北风凛冽。郯城县马头镇高册社区张园村,路旁绿化带里南天竹的果实格外耀眼。高军摄红红的果实满枝头,南天竹美丽动人红红的果实满枝头,南天竹美丽动人红红的果实满枝头,南天竹美丽
环游南疆(7)印象阿克苏文图老理行阿克苏,南疆重镇,古丝绸之路上的重要驿站。如果单从旅游方面看,阿克苏显得有些平淡无奇,鲜有亮点它既没有古龟兹国库车那厚重的历史和灿烂的文化,也没有喀什那浓郁的民俗特点和伊