Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将页面的图片拉直,使其看起来像被扫描过一样?_Javascript_Image Processing_Transformation_Conceptual - Fatal编程技术网

Javascript 如何将页面的图片拉直,使其看起来像被扫描过一样?

Javascript 如何将页面的图片拉直,使其看起来像被扫描过一样?,javascript,image-processing,transformation,conceptual,Javascript,Image Processing,Transformation,Conceptual,我看过应用程序,想知道如何通过编程方式拍摄图像。定义它需要如何变换,以使其看起来与摄影机平行,而不是扭曲透视 然后合并多张照片以创建pdf文件。例如,此应用程序可以做到这一点:我不使用书籍来处理这些琐碎的事情,因此很抱歉,我不能推荐任何书籍(尤其是英语)。您需要做的是: 输入图像 查找主轮廓 理想情况下,整个网格,但即使是外部轮廓也足够(在没有网格的情况下)。您需要将轮廓划分为水平(红色)和垂直(绿色)曲线(或一组点) 通过4个“等距”点采样轮廓曲线 由于图像是扭曲的(不仅仅是旋转的),因此我

我看过应用程序,想知道如何通过编程方式拍摄图像。定义它需要如何变换,以使其看起来与摄影机平行,而不是扭曲透视


然后合并多张照片以创建pdf文件。例如,此应用程序可以做到这一点:

我不使用书籍来处理这些琐碎的事情,因此很抱歉,我不能推荐任何书籍(尤其是英语)。您需要做的是:

  • 输入图像
  • 查找主轮廓

    理想情况下,整个网格,但即使是外部轮廓也足够(在没有网格的情况下)。您需要将轮廓划分为水平(红色)和垂直(绿色)曲线(或一组点)

  • 通过4个“等距”点采样轮廓曲线

    由于图像是扭曲的(不仅仅是旋转的),因此我们需要至少使用双三次插值。为此,我们需要16点(水)每个补丁

  • 添加镜像点以覆盖整个网格

    图像上的镜像(黄色)点仅适用于水平轮廓,您还应针对垂直轮廓(不适合我在图像中,不希望仅为此放大分辨率)和角点执行此操作,因此您获得了
    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个月的时间,我没有时间也没有心情做这样的事情更不用说需要资金了。我不久前就停止了宣传。此外,应该有很多这样的书,有些甚至在线,所以只有谷歌的计算机视觉和计算机图形。