做计算机视觉方向,除了流行的各种深度学习算法,很多时候也要会基础的图像处理方法。
记录下opencv的一些操作(图像映射变换),日后可以方便使用
先上一张效果图
图二和图三是同一种方法,只是变换矩阵不同,都是3点映射变换
图四使用的是4点映射变换
简单介绍下原理
图像都知道是3维(通道)的矩阵,前两维就是由1字节(0-255)数字填充的二维数组。数字大小代表颜色的深浅。
我们把变换前的原图作为x和y。变换后的图为u和v。将[x,y,1]乘上变换矩阵就可以得到对应的新的u和v。不同的变换矩阵有不同的作用(不同的变换方式)
所以现在就是求不同变换对应的不同的变换矩阵的过程
求这个矩阵 在opencv中直接就有方法
只需提供原图的三个点和你要变换之后的三个点的映射位置(3个原图点,3个映射点)就可以求出这个变换矩阵
当然了 你会发现不管怎么调整映射点 都不能任意变换
因为只给三个点时 变换之后的图其实只是原图的等比缩放,并不能做到随意映射的效果
这里opencv也提供了 四个点和四个映射的方法 求出对应的变换矩阵 ,最终得到任意映射的效果
代码如下:
# coding=gbk import cv2 import numpy as np import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False #用来正常显示负号 img=cv2.imread(r"test6.jpg") img = img[:,:,[2,1,0]] cols,rows,ch=img.shape pts1 = np.float32([[0, 0], [cols - 1, 0], [0, rows - 1]]) #三点映射 pts2 = np.float32([[0, 0], [cols - 1, 0], [80, rows - 1]]) pts21 = np.float32([[0, 0], [cols - 1, 0], [0, rows - 1]]) pts22 = np.float32([[cols * 0.2, rows * 0.1], [cols * 0.9, rows * 0.2], [cols * 0.1, rows * 0.9]]) pts31 = np.float32([[0, 0], [cols - 1, 0], [0, rows - 1],[cols - 1,rows-1]]) #四点映射 pts32 = np.float32([[0, 0], [cols - 1, 0], [50, rows - 1],[cols - 50,rows-50]]) M = cv2.getAffineTransform(pts1,pts2) #求三点映射的变换矩阵 M2= cv2.getAffineTransform(pts21,pts22) M3 = cv2.getPerspectiveTransform(pts31,pts32) #求四点映射的变换矩阵 dst = cv2.warpAffine(img,M,(rows+120,cols)) #三点映射的变换函数 dst2 = cv2.warpAffine(img,M2,(rows,cols)) dst3 = cv2.warpPerspective(img,M3,(rows+40,cols+50)) #四点映射的变换函数 plt.subplot(221) plt.imshow(img) plt.title("原图") plt.subplot(222) plt.imshow(dst) plt.title("投影变换") plt.subplot(223) plt.imshow(dst2) plt.title("仿射原图变换") plt.subplot(224) plt.imshow(dst3) plt.title("仿射不规则变换") plt.show()
以上所述是小编给大家介绍的python-图像处理(映射变换)详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新动态
- DzintraErliha-Dreamscape(2024)[24Bit-96kHz]FLAC
- 群星.1999-上华世纪国语总冠军4CD【上华】【WAV+CUE】
- 叶丽仪.1992-仙鹤神针电视剧原声音乐专辑【星传真】【WAV+CUE】
- 陈柏宇.2011-QUINQUENNIUM【SONY】【WAV+CUE】
- 《51首热门当红歌曲 十大顶级发烧女声 3CD》[WAV+CUE][1.6GB]
- 《赵传 深受摇滚迷青睐的台湾音乐人 约定》[WAV+CUE][320MB]
- 《庄心妍 实力唱将 发烧音乐精选集》[WAV+CUE][380MB]
- [音展纪念碟]2006年《TAA台湾第十六届国际HI-ENDHI-FI音响展》2cd[WAV]
- 中国音乐地图之听见西藏山歌牧歌酒歌2020[WAV分轨]
- 王宏伟2017-永远的红飘带[太平洋影音][WAV+CUE]
- 费翔.1997-NOW现在【第一中国】【WAV+CUE】
- 新格合唱团.1981-我唱你和2辑(滚石新格民歌系列)【新格】【WAV+CUE】
- 陈柏宇.2011-QUINQUENNIUM【SONY】【WAV+CUE】
- 雨果唱片-《金唛系列-蔷薇依韵琼瑶》WAV
- 陈百强《凝望(2012华纳LPCD45限量版)[DMI]》[WAV整轨]