gpt4 book ai didi

javascript - Canvas : Find corners of a card in Image

转载 作者:行者123 更新时间:2023-12-01 03:44:24 25 4
gpt4 key购买 nike

我的目标是从图像中提取任何卡片..

描述:

我最初有以下图像...

Original Image

将其绘制在 Canvas 上并应用精明的边缘检测并得到这个..

Image after Canny Edge Detection

我希望得到的结果应该类似于:

required output

要从图像中提取卡片,我需要找到卡片的 Angular 点。

或者

我在互联网上找到的另一种方法是:

  1. 遍历所有边并找到闭合边,然后

  2. 找到最大的闭合边缘并进行相应的裁剪。

但是在尝试构建任何逻辑来实现任何方法时我变得毫 headless 绪。

这样做是为了获得边缘检测,但无法进一步继续:

var img = new Image();
img.src = "bcard.png";
img.onload = function() {
var canv = document.getElementById("canv");
var ctx = canv.getContext("2d");
canv.height = img.height;
canv.width = img.width;
ctx.drawImage(img,0,0);
window.canny = CannyJS.canny(canv); //included a js script to do canny edge detection
canny.drawOn(canv);

}

最佳答案

首先,我从提供的图像中提取了红色 channel

红色 channel 图像:

enter image description here

接下来,我应用高斯模糊对其进行模糊处理。

图像模糊:

enter image description here

最后,我进行了边缘检测以获得以下结果。

最终边缘:

enter image description here

为了完美裁剪卡片,您必须仅找到一个外部轮廓。为此,您需要放大生成的图像

放大图像:

enter image description here

现在你必须找到轮廓。找到存在的外部轮廓。在这种情况下,您只会找到一个轮廓。围绕该轮廓绘制一个边界矩形。

enter image description here

使用边界矩形的坐标,裁剪图像:

enter image description here

(我有 python 生成的脚本,但我看到您已经用 javascript 编写了代码脚本)

关于javascript - Canvas : Find corners of a card in Image,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43654099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com