Javascript 图像的逆二值阈值函数

Javascript 图像的逆二值阈值函数,javascript,image,Javascript,Image,我目前正在开发一款运动鞋推荐应用程序。作为实现的一部分,用户需要上传一个运动鞋的图像,然后应用程序尝试从中找到3个最匹配的鞋。到目前为止,我已经创建了一个运动鞋数据集,并决定使用它来比较上传的图像与数据集中的内容 然而,我遇到了一个问题。在发送上传的运动鞋图片之前,我需要确定它的形状,以确定它是否可以提交 理想情况下,我希望所有的图片都朝向一个方向。。。因此,考虑下面的场景。 用户上传: 它位于错误的方向,因此应用程序知道镜像它,因为数据集中的所有图像都朝向此方向: 因此,所有需要做的是镜

我目前正在开发一款运动鞋推荐应用程序。作为实现的一部分,用户需要上传一个运动鞋的图像,然后应用程序尝试从中找到3个最匹配的鞋。到目前为止,我已经创建了一个运动鞋数据集,并决定使用它来比较上传的图像与数据集中的内容

然而,我遇到了一个问题。在发送上传的运动鞋图片之前,我需要确定它的形状,以确定它是否可以提交

理想情况下,我希望所有的图片都朝向一个方向。。。因此,考虑下面的场景。

用户上传:

它位于错误的方向,因此应用程序知道镜像它,因为数据集中的所有图像都朝向此方向:

因此,所有需要做的是镜像图片,因为它是完全有效的。完成此操作后,图像已通过预处理,并与数据库中的内容进行比较

我研究了各种方法,其中一种打动我的方法是使用一种反向二进制阈值方法,以便将图像背景变黑,同时将鞋本身的内容变白

可以用Javascript实现这一点吗?如果是,怎么做


然后我认为,分析图片,看看哪一面有更多的黑/白(将其一分为二),以确定是否需要镜像是有意义的。在无法镜像的情况下,用户只需上传一张新图片。

通过rgba循环,将n(ex 128)以上的任何内容更改为255,将n(ex 128)以下的任何内容更改为0。不再引导,但第1588行上的源代码给出了一个正常工作的ntsc B+W示例。如果你已经有了一个去饱和的图像,你可以在Thresholdingremble.js中做更少的数学运算,它是为在截图网站中寻找像素级的变化而构建的,而不是实际的照片。它不会给你任何有用的信息。如果没有一些关于用户将上传何种图片的信息(例如,他们用手机摄像头拍摄的糟糕图片或你在问题中提到的运动鞋的完美轮廓),你的问题很难回答。@Blender,因为用户将上传相对高质量的图片。。。它将如何工作?有更好的方法吗?@dandavis鉴于我的应用程序中有base64格式的图像,我将如何实现B+W示例?你必须使用who的drawImage将图像加载到一个文件中。src是由base64数据生成的数据URL。然后在画布上下文上调用getImageData,以获得rgba亚像素值的简单平坦数组。听起来比实际情况更复杂;有关详细信息,请查阅画布图像教程。