请叫我开森果
几何变换是指将一幅图像映射到另一副图像内的操作,根据映射关系的不同,有缩放、翻转、仿射变换、透视、重映射等。 在OpenCV中使用函数()实现对图像的缩放: (src, dsize[,fx[,fy[, interpolation]]]) src :代表要缩放的原始图像; dsize : 代表输出图像大小,第一个值为目标图像的宽度,第二个值为目标图像的高度 fx : 代表水平方向的缩放比 fy : 代表垂直方向的缩放比 interpolation: 代表插值方式。插值是指在对图像进行几何处理时,给无法直接通过映射得到值的像素点赋值。当缩小图像时,使用区域插值方式( INTER_AREA)能够得到最好的效果;当放大图像时,使用三次样条插值(INTER_CUBIC)方式和双线性插值(INTER_LINEAR)方式都能得到较好的效果。三次样条插值方式速度较慢,双线性插值方式速度相对较快且效果并不逊色。 【注】:fx、fy只要当dsize=None时才起作用。 import cv2 import numpyas np img = ('') shape_img = print(shape_img) biger_img = (img,(720,480),interpolation=) smaller_img = (img,None,fx=) ('img',img) ('biger_img',biger_img) ('smaller_img',smaller_img) return_value = (0) () 在OpenCV中,图像的翻转采用函数()实现,该函数能实现水平方向、垂直方向、两个方向同时翻转。 dst = (src, flipCode) src : 表示要处理的图像; flipCode : 表示旋转类型,为0时,表示绕X轴旋转;为正数,表示绕y轴旋转;为负数,表示绕x、y轴同时旋转。 dst: 返回和原图像有相同大小和类型的目标图像。 img = ('') shape_img = print(shape_img) x_img = (img,1) xy_img = (img,-1) ('img',img) ('x_img',x_img) ('xy_img',xy_img) return_value = (0) () 仿射是指图像可以经过一系列的几何变换来实现平移、旋转等多种操作。该变换能够保持图像的平直性(变换前后,直线仍是直线)和平行性(变换前后,平行线仍是平行线)。 OpenCV中的仿射函数是(),其通过一个变换矩阵M实现变换,具体为:dst = (src,M,dsize[,flags[,borderMode[,borderValue]]]) dst: 表示输出图像,它和原始图像有相同的类型,大小由dsize决定; src: 表示原始图像; M: 代表一个2X3的变换矩阵。 dsize: 输出图像的尺寸大小; flags : 代表插值方法,默认为INTER_LINEAR。当该值是WARP_INVERSE_MAP时,意味着M是逆变换矩阵,实现从目标图像dst到原始图像src的逆变换。 borderModer : 代表边类型,默认为BORDER_CONSTANT.当该值为BORDER_TRANSPARENT时,意味着目标图像内的值不做改变,这些值对应原始图像内的异常值。 borderValue : 代表边界值,默认是0. 1)平移 平移的矩阵M: M = [[1,0,x],[0,1,y]] 将图像水平向右移动100像素,垂直向下平移150像素。 import cv2 import numpyas np img = ('') shape_img = print(shape_img) M = ([[1,0,100],[0,1,150]]) warp_img = (img,M,(shape_img[1],shape_img[0])) rut_warp_img = (img,M,(shape_img[1],shape_img[0]),borderMode=) ('img',img) ('warp_img',warp_img) ('rut_warp_img',rut_warp_img) return_value = (0) () 2)旋转 在使用wrapAffine()对图像进行旋转时,可以通过函数(center,angle,scale)获取转换矩阵。其中: center为旋转中心; angle为旋转角度; scale为变换尺度。 例如:以图像中心点为旋转中心,顺时针旋转45°,图像缩小到原来的倍。 img = ('') height,width = [:2] M = ((width/2,height/2),45,) rota_img = (img,M,(width,height)) ('img',img) ('rota_img',rota_img) 3)更复杂的仿射 对于更复杂的仿射变换,Opencv提供了函数()来生成仿射函数所需要的转换矩阵M. (src,dst) src 代表输入图像的三个点坐标 dst 代表输出图像的三个点坐标 该函数定义了两个平行四边形,src和dst中的三个点分别对应平行四边形的左上角、右上角、左下角。它确定了原图像到目标图像的映射关系。 img = ('') height,width = [:2] # 确定两个平行四边形 p1 = ([[0,0],[width-1,0],[0,height-1]]) p2 = ([[0,height*],[width**],[height**]]) M = ((width/2,height/2),45,) retval = (p1,p2) rota_img = (img,M,(width,height)) dst_img = (img,retval,(width,height)) ('img',img) ('rota_img',rota_img) ('dst_img',dst_img) 仿射变换可以将矩形变成任意平行四边形,透视变换可以将矩形映射到任意四边形。 透视变换通过()实现: dst = (src, M, dsize[,flags[,borderMode[,borderValue]]]) dsize :决定输出图像的大小 M :代表一个3X3的变换矩阵 flags: 代表差值方法,默认为INTER_LINEAR。当该值是WARP_INVERSE_MAP时,意味着M是逆变换类型 borderValue :代表边界值,默认是0 与仿射变换一样,同样可以使用一个函数来生成M: (src,dst) src,dst 都是一个包含四个坐标点的数组。 例如: img = ('') height,width = [:2] # 确定两个平行四边形 p1 = ([[0,0],[100,0],[0,50],[100,50]]) p2 = ([[20,20],[50,30],[30,70],[70,60]]) retval = (p1,p2) dst_img = (img, retval, (width,height)) ('img',img) ('dst_img',dst_img) 把一幅图像的像素点放到另一幅图像的指定范围,这个过程称为图映射。OpenCV提供了多种重映射方式,其中dst = (src, map1, map2, interpolation[,borderMode[,borderValue]]) dst 和src有相同的大小和类型。 map1 参数都有两种可能的值: 1)表示(x,y)点的一个映射 2)表示CV_16SC2,CV_32FC1,CV_32FC2类型(x,y)点的x值 map1 参数同样有两种可能的值: 1)当map1表示(x,y)时,该值为空 2)当map1表示(x,y)点的x值时,该值是CV_16UC1,CV_32FC1类型(x,y)点的y值。 Interpolation代表插值方式,这里不支持INTER_AREA方法。 重映射通过修改像素点的位置得到一幅新图像。在构造新图像时,需要确定新图像中每一个像素点在原始图像中的位置,因此映射函数的作用是查找新图像在原始图像中的位置,该过程是将新图像映射到原始图像的过程,因此被称为反向映射。 在函数()中,参数map1和map2用来说明反向映射,map1针对的是坐标x,指代像素所在位置的列号,map2针对的是坐标y,指代像素所在位置的行号。map1和map2的值都是浮点数。因此目标函数可以映射回一个非整数的值,这意味着可以将目标图像“反向映射”到原始图像中两个像素之间的位置(这样的位置是不存在的)。这是采用不同的方法来插值处理。 将map1的值设为对应位置上的x轴坐标值 将map2的值设为对应位置上的y轴坐标值 假如想让图片绕X轴翻转,则图像x坐标不变,y坐标变为总行数-1-当前行号; 如果想让它绕y轴翻转,也同理:总列数-1-当前列号 将x轴的值调整为所在行的行号;将y轴的值调整为所在列的列号 注:如果行数和列数不等,可能出现存在值不能映射的情况。默认情况下,无法完成的值会被处理为0. 将图像缩小为原来的两倍,并居中处理: 结果如下:
壬生京三郎
摘 要:数学广泛存在于生活中,善于开发和利用学生身边的数学资源与素材进行加工和创造,有利于提高学生的知识视野。关注数学活动的教学,更能激发学生学习数学的兴趣,注重数学模型的作用,有助于学生创造能力的培养。 关键词:三角板;旋转的不变性;创造能力;逻辑思维能力 随着课改的进行及《义务教育数学课程标准》的实施,处处体现生活中存在数学。怎样去发现数学,其实数学就在身边,留心观察,细心思考,你会体会到数学的奇妙与快乐。下面就简单的一副三角板的开发和利用,谈点自己的看法与启示。 首先进入我们视野的是等腰直角三角形,这是一个德才兼备的几何图形,它既具有等腰三角形的性质又具有直角三角形的性质。研究起来会妙笔生花,细心的品读它带给我们的快乐。取一对全等的含45度角的三角板进行简单的探究活动,将△MNK的直角顶点M放在△ABC的斜边中点上。设AC=BC=4, (1)如图1,两三角板重叠部分为△ACM,则重叠部分的面积是多少?周长为多少? 显而易见:△ACM的面积等于△ABC的一半周长等于AB+AC,而AB的长由勾股定理求得。 (2)将图1中的三角板MNK绕顶点M逆时针旋转45度角,得到图2,则重叠部分的面积会发生变化吗?周长为多少?类比图1很快就会发现没有变化周长为8。 (3)将△MNK绕点M旋转到不同于图1和图2的位置,你猜想此时重叠部分面积会发生变化吗?如果不发生变化,请说出理由。于是学生投入到激烈讨论中,这种跳跃性思维跃然于纸上。启发在已有的研究成果基础上去构造,既然△MNK是旋转变化的,能不能转换为图1于图2的图形。观察与研究发现面积不变,那又怎样证明。连接CM会发现△CMG会和△APM全等,可以看成△CMG绕点M旋转90度角得到的,此时图形旋转起到了一个惊人的变化。由特殊到一般揭示了图形变换的本质,一石激起千层浪,让学生自己拼图利用三角板反复进行仔细观察会发现什么?小组讨论、研究。追问:在图3中,AP=1的情况下,怎样求重叠部分的周长?生1:坏了,这下掉进老师设的陷阱里了,出不来了。此时,我静静地等待学生研究成果。生2:AP=1,CP=3,由三角形全等知:CG=AP=1,可PM=MG=?此时,陷入僵局,大部分同学投入积极的思考中,既然是旋转大家能不能转化为图1,图2呢?从中得到哪些启示。图3能转化为图2吗?联想与旋转变化交替进行,是数学思维活动进入了又一个高峰。积极的思考和点拨,让学生在思维的碰撞中产生火花。生3:老师我知道了。生4:我也知道了。我抓住有利时机,问什么在这里起到了重要的作用,勾股定理即可求DM的长。从中看到了旋转的作用,全等变换其形变本质不变,找到恰当的解题方法,达到融会贯通的目的。 思维的发散与变式正是研究问题的恰好时机,此时展示2013年河南省中考试题,实现思维的正向迁移。 将两块全等的含30度的三角板如图4放在一起,△ABC与△DEC重合放置,∠C=90度,∠B=∠E=30度。(1)操作发现:固定△ABC绕点C旋转,点D恰好落在AB边上时,如图5,填空:①线段DE与AC位置关系_______。②设△BCD的面积与△AEC的面积的数量关系是 。③猜想论证:当△DEC绕点C旋转到图6的位置时,小马猜想②中的结论仍然成立,并尝试分别做△BDC和△AEC的BC与CE边上的高,请你证明小马的猜想。 有了前一个习题的铺垫,①②两问学生会顺利地得到解答。③的解答细细的思考会发现,既然是旋转,抓住旋转的不变性及旋转前后的图形全等的特征,可证△ACN≌△DCM即可。 当替换条件时,∠BAC=36度,△ABC为等腰三角形,上述条件不改变,就变为一般情况,这样从一般到特殊的思维方法。拓展学生的知识视野,举一反三,融会贯通使知识达到成片开发,提高学生的想象能力及逻辑思维能力,达到训练目的。 启示:在这节习题课中,旋转的特殊性质,抓住旋转的不变性,利用全等条件,仔细观察图形的变化,启发学生思维开发和利用旋转的内在联系,一题多用,变换条件。螺旋上升,使学生的视野开阔,提升解答问题的能力。教学中只要留心观察,认真研究习题的变化和解题规律就会有所收获。充分利用学生手中的三角板进行演示,拼接通过全方位观察思考,运用工具进行知识重组和解答,无疑对培养学生思维的灵活性和独创性有着十分重要的意义。事实上,充满思考性的练习题即使学生没能完全正确解答出来,也能有效地训练学生的创新思维。这不仅有利于提高学生思考、分析的积极性,也有利于开发学生的创造潜能。创造性思维不仅要求思维的数量,还要求思维的深度和灵活性,即思维的变通性。创造性教学则是培养创造性思维和创新能力的基础。所以教师在教学过程中要从多角度训练学生的思维品质,使学生能独立地、自觉地运用所给问题的条件,并做出新的变换和组合,培养学生灵活应变能力。所以在教学中要关注学生的数学活动,培养动手操作能力,及时转换为数学模型,挖掘数学习题的内在潜质,去发现共性进而研究这类习题的解题规律。 以上三例的演示与启发使我认识到:教师一定要充分收集利用已有的数学资源,进行加工与创造培养学生的探究精神。去追求数学知识的内在联系,加强创新思维训练与培养,有待于我们去研究和利用。 (作者单位 永吉县第七中学) 编辑 鲁翠红
你看看这个吧!!
我从初中开始就对初等几何非常感兴趣,后来哪怕是在高考前几个月也一直在看初等几何方面的书 结合我跟一个数学系教授的讨论,基本上初等几何已经不能算是研究了,能够被
相关范文: 匿名通信技术在电子商务中的应用 [摘 要] 随着Internet的迅猛发展和广泛应用,网上的匿名和隐私等安全问题也逐步成为全球共同关注的焦点,尤其在
积分变换可以把微分方程变换为初等方程,求解方便。另外求线性系统的响应,用积分变换不用考虑初始状态,非常方便。可以实现时域和频域的变换,方便对谐波进行分析计算。使
第一:许多图形应用涉及到几何变换,主要包括平移、旋转、缩放。以矩阵表达式来计算这些变换时,平移是矩阵相加,旋转和缩放则是矩阵相乘,综合起来可以表示为p'=p*m