更改用户在 canvas 中由 Javascript 上传的图像特定区域的颜色
Change color of a particular area of Image uploaded by User In canvas by Javascript
我正在发布一个网站,您可以在该网站上通过上传您家的照片来想象墙上的颜色。它们是我点击区域的泛光填充颜色。他们正在另一个 canvas 上创建形状(可能通过检测边缘)。谁能告诉我他们是如何实现的? Link 到站点:https://www.visualizecolor.com/ppgpaints#.
并建议是否存在执行相同操作的 js 库。
我可以看到两种不同的方法。
第一个想法
- 您可以将 canvas 分割成子区域,这要归功于像 Sobel 或 Canny 过滤器这样的边缘过滤器。 JSFeat 完成工作:
sobel filter example
canny filter example
- 然后将原始颜色转换为 HSV,用自定义颜色填充每个区域,保留饱和度和亮度,但用新颜色替换色相值
第二个想法
- 您使用的播种算法包括仅当原始颜色和目标颜色(均在 HSV 中)之间的距离低于某个阈值时才将新颜色传播到像素
我正在发布一个网站,您可以在该网站上通过上传您家的照片来想象墙上的颜色。它们是我点击区域的泛光填充颜色。他们正在另一个 canvas 上创建形状(可能通过检测边缘)。谁能告诉我他们是如何实现的? Link 到站点:https://www.visualizecolor.com/ppgpaints#.
并建议是否存在执行相同操作的 js 库。
我可以看到两种不同的方法。
第一个想法
- 您可以将 canvas 分割成子区域,这要归功于像 Sobel 或 Canny 过滤器这样的边缘过滤器。 JSFeat 完成工作: sobel filter example canny filter example
- 然后将原始颜色转换为 HSV,用自定义颜色填充每个区域,保留饱和度和亮度,但用新颜色替换色相值
第二个想法
- 您使用的播种算法包括仅当原始颜色和目标颜色(均在 HSV 中)之间的距离低于某个阈值时才将新颜色传播到像素