您的位置:首页 > 其它

SimpleCV中shear()函数和warp()函数的区别

2016-08-21 21:12 225 查看
shear()函数和warp()函数都是改变图像形状的工具,本来我并不知道它们大的区别在哪里(小白成长中......),书上并没有写清楚,只是简单的解释了一下,说两者类似

。决定好好做人的我花了点时间研究了下。

我查看了下API文档,里面是这样写的,如下:

shear()函数

Given a set of new corner points inclockwise order, return a shear-ed image that transforms the image contents. The returned image is the same 
dimensions. 

warp()函数:

This method performs and arbitraryperspective transform.Given a new set of corner points in clockwise order frin top left,return
an Image with the images contents

warped to the new coordinates. 
The returned imagewill be the same size as the original image.

有的朋友可能不是很懂英文,不要慌,我都不慌......看到高亮的两句英文了吗?

黄色底的英文意思是“返回的图像有着相同的尺寸”,绿底的英文意思是“返回的图像将会变得和原图像一样的大小”。似乎没啥区别,我当时也这么觉得,不过我又用两段代码测试了下。

使用了shear()函数的代码:

from SimpleCV import Image
img = Image('c:\Users\Administrator\Desktop\erweima.jpg')
corners = [(50, 50), (300, 0), (250, 300), (50, 200)]
straight = img.shear(corners)
straight.show()


使用了warp()函数的代码:

from SimpleCV import Image
img = Image('c:\Users\Administrator\Desktop\erweima.jpg')
corners = [(50, 50), (300, 0), (250, 300), (50, 200)]
straight = img.warp(corners)
straight.show()



不错,两段代码的不同只是把shear()改成了warp()而已,它们的用法一样一样的。但效果并不一样。

使用了shear()函数的输出:



使用了warp()函数的输出:



大家看图就应该明白了吧,嗯,我们还需要一些文字来描述下。

我查了下资料,发现和Photoshop里的工具一样,都是图像处理嘛

,shear()函数就是斜切,而warp()函数就是扭曲。以下来自百度经验点击打开链接

斜切:斜切工具是指对选区的某个边界进行拉伸和压缩,但作用的方向只能沿着该边界所在的直线上。比方说,将正方形变成平行四边形就可以使用斜切工具,对正方形的某个边进行拉伸和压缩。

扭曲:顾名思义,扭曲正如词语表面的意思,就是将图片进行扭曲变形,使得图片按一定形状存在,通俗比喻可以讲在现实中将一张纸质照片扭曲。

至此大家应该明白shear()函数和warp()函数具体有什么区别了吧

~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: