Javascript 如何将页面的图片拉直,使其看起来像被扫描过一样?
我看过应用程序,想知道如何通过编程方式拍摄图像。定义它需要如何变换,以使其看起来与摄影机平行,而不是扭曲透视Javascript 如何将页面的图片拉直,使其看起来像被扫描过一样?,javascript,image-processing,transformation,conceptual,Javascript,Image Processing,Transformation,Conceptual,我看过应用程序,想知道如何通过编程方式拍摄图像。定义它需要如何变换,以使其看起来与摄影机平行,而不是扭曲透视 然后合并多张照片以创建pdf文件。例如,此应用程序可以做到这一点:我不使用书籍来处理这些琐碎的事情,因此很抱歉,我不能推荐任何书籍(尤其是英语)。您需要做的是: 输入图像 查找主轮廓 理想情况下,整个网格,但即使是外部轮廓也足够(在没有网格的情况下)。您需要将轮廓划分为水平(红色)和垂直(绿色)曲线(或一组点) 通过4个“等距”点采样轮廓曲线 由于图像是扭曲的(不仅仅是旋转的),因此我
然后合并多张照片以创建pdf文件。例如,此应用程序可以做到这一点:我不使用书籍来处理这些琐碎的事情,因此很抱歉,我不能推荐任何书籍(尤其是英语)。您需要做的是:
6x6
控制点。镜子可以线性地完成(就像我做的那样)dst(x0,y0)
x,y
作为三次插值的参数
如果xs,ys
是目标图像分辨率,则:
u=(3.0*x)/xs
v=(3.0*y)/ys
现在三次插值通常是在参数
t=上进行的,我不使用书籍来处理这些琐碎的事情,所以很抱歉,我不能推荐任何(特别是英语)。您需要做的是:
输入图像
查找主轮廓
理想情况下,整个网格,但即使是外部轮廓也足够(在没有网格的情况下)。您需要将轮廓划分为水平(红色)和垂直(绿色)曲线(或一组点)
通过4个“等距”点采样轮廓曲线
由于图像是扭曲的(不仅仅是旋转的),因此我们需要至少使用双三次插值。为此,我们需要16点(水)每个补丁
添加镜像点以覆盖整个网格
图像上的镜像(黄色)点仅适用于水平轮廓,您还应针对垂直轮廓(不适合我在图像中,不希望仅为此放大分辨率)和角点执行此操作,因此您获得了6x6
控制点。镜子可以线性地完成(就像我做的那样)
现在转换是这样完成的:
处理目标图像的所有像素dst(x0,y0)
处理x,y
作为三次插值的参数
如果xs,ys
是目标图像分辨率,则:
u=(3.0*x)/xs
v=(3.0*y)/ys
现在三次插值通常是在参数t=上完成的,所以找到边缘点,使用双线性或双三次插值来拉直我头上的图像,从视觉上我可以知道发生了什么,但很迷茫。你推荐的任何一本书都能让我提高速度。所以,找到边缘点,使用双线性或双三次插值来拉直我头上的图像,从视觉上我可以分辨出发生了什么,但很迷茫。你推荐的任何一本书都能让我达到最快的速度。我会在两天内回答任何问题,这是我的很多东西,所以请你忍受我。我以前问过这个问题,没有人能回答。这不是小事,我会上6个月的课程,然后感觉很舒服。我是一个网络开发者,如果你写了一本关于它的书,我会买它。用简单的英语将新手程序员带到图像处理的高级概念中的东西。@MuhammadUmer它不是高级的东西,而是CV/DIP和低级图形原理的融合。问题是,该领域的大多数程序员都是专门从事他们狭窄领域的,因此看不到与其他人的联系。。。即使是基础知识。写这样的书需要6到12个月的时间,我没有时间也没有心情做这样的事情更不用说需要资金了。我不久前就停止了宣传。也应该有很多这样的书,有些甚至是在线的,所以只要谷歌的计算机视觉和计算机图形学。我会在2天内回复任何问题,这对我来说是很多东西,所以请容忍我。我以前问过这个问题,没有人能回答。这不是小事,我会上6个月的课程,然后感觉很舒服。我是一个网络开发者,如果你写了一本关于它的书,我会买它。用简单的英语将新手程序员带到图像处理的高级概念中的东西。@MuhammadUmer它不是高级的东西,而是CV/DIP和低级图形原理的融合。问题是,该领域的大多数程序员都是专门从事他们狭窄领域的,因此看不到与其他人的联系。。。即使是基础知识。写这样的书需要6到12个月的时间,我没有时间也没有心情做这样的事情更不用说需要资金了。我不久前就停止了宣传。此外,应该有很多这样的书,有些甚至在线,所以只有谷歌的计算机视觉和计算机图形。