小编Jam*_*its的帖子

用opencv找到手绘线的端点

我试图找到手绘线的两个端点,我已经编写了这个找到轮廓的片段,但端点不正确:

img = cv2.imread("my_img.jpeg")

img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# Binary Threshold:
_, thr_img = cv2.threshold(img_gray, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)

cv2.imshow(winname="after threshold", mat=thr_img)
cv2.waitKey(0)

contours, _ = cv2.findContours(image=thr_img, mode=cv2.RETR_TREE, method=cv2.CHAIN_APPROX_SIMPLE)

for idx, cnt in enumerate(contours):
    print("Contour #", idx)
    cv2.drawContours(image=img, contours=[cnt], contourIdx=0, color=(255, 0, 0), thickness=3)
    cv2.circle(img, tuple(cnt[0][0]), 5, (255, 255, 0), 5) # Result in wrong result
    cv2.circle(img, tuple(cnt[-1][0]), 5, (0, 0, 255), 5)  # Result in wrong result
    cv2.imshow(winname="contour" + str(idx), mat=img)
    cv2.waitKey(0)
Run Code Online (Sandbox Code Playgroud)

原图:

在此输入图像描述

我也尝试过cornerHarris,但它给了我一些加分,

有人可以建议一个准确且更好的方法吗?

python opencv image-processing

6
推荐指数
2
解决办法
2366
查看次数

如何使用 Clang 从源代码中提取控制流图?

在过去的 5 年里,我一直在使用 Gnu 编译器集合 (gcc/g++),所以我是 clang 的新手,我想为 C/Objective C/C++ 源代码生成控制流图。值得庆幸的是,我已阅读此处此处,发现我可以通过使用 CFG 类函数获得源代码级语句的基本块表示: CFG::buildCFG() CFG::dump()

这很棒:),但我仍然不清楚如何在将函数传递给 buildCFG 之前以 AST 形式和 ASTContext 获取函数体?

有人可以在这里给一个简短的片段吗,演示如何使用 clang 导出给定源代码的 CFG 吗?

谢谢你们

c llvm clang abstract-syntax-tree control-flow-graph

5
推荐指数
1
解决办法
6629
查看次数

在 d3js 中寻找具有特定投影的世界地图

我玩过d3js (v5)地图,我正在尝试生成这张地图(截图来自一个随机网站), 对于我的特殊情况,不需要呈现南极洲

在此处输入图片说明

我在这里阅读了文档:https : //github.com/d3/d3-geo#projections,并按照说明使用了 geoMercator,得到了这张平面地图,由于某种原因,该地图在北上角截断

在此处输入图片说明

获取第一张地图布局的正确方法是什么?有什么建议?

javascript geo map-projections d3.js

4
推荐指数
1
解决办法
1111
查看次数

使用openCV识别角落页面部分失败

我想获取页面的 4 个角,我采取的步骤:

  1. 转换为灰度
  2. 对图像应用阈值
  3. 应用Canny检测边缘
  4. 之后我用过findContours
  5. 为每个多边形绘制近似多边形,我的假设是相关多边形必须有 4 个顶点。

但一路上我发现我的解决方案有时会失败,显然我的解决方案不够健壮(可能有点幼稚的解决方案)。

在此输入图像描述

我认为纸角检测失败的一些原因是:

  • 手动选择阈值以进行精明检测。
  • epsilon 值相同approxPolyDP

我的代码

import cv2
import numpy as np
image = cv2.imread('page1.jpg') 

descalingFactor = 3
imgheight, imgwidth = image.shape[:2]
resizedImg = cv2.resize(image, (int(imgwidth / descalingFactor), int(imgheight / descalingFactor)),
                        interpolation=cv2.INTER_AREA)

cv2.imshow(winname="original", mat=resizedImg)
cv2.waitKey()

gray = cv2.cvtColor(resizedImg, cv2.COLOR_BGR2GRAY)
cv2.imshow(winname="gray", mat=gray)
cv2.waitKey()
img_blur = cv2.GaussianBlur(gray, (5, 5), 1)
cv2.imshow(winname="blur", mat=img_blur)
cv2.waitKey()

canny = cv2.Canny(gray,
                  threshold1=120,
                  threshold2=255,
                  edges=1)

cv2.imshow(winname="Canny", mat=canny)
cv2.waitKey()

contours, _ = cv2.findContours(image=canny, mode=cv2.RETR_EXTERNAL, method=cv2.CHAIN_APPROX_SIMPLE)

contours = …
Run Code Online (Sandbox Code Playgroud)

python opencv image-processing

4
推荐指数
1
解决办法
1829
查看次数

如何检索 python 代码的控制流图?

我想转储给定 python 代码的控制流图,类似于 gcc 编译器选项给出的选项:用于 c 代码的 -fdump-tree-cfg 。

我成功获得了Python代码的AST(抽象语法树),但是从AST阶段获得控制流图似乎相当复杂和麻烦。

有没有更简单的方法来直接检索Python代码的控制流图?有什么建议么?

哦顺便说一下我正在使用 python3.5

谢谢你们!

PS我真的不知道我在幕后使用什么样的解释器,据我所知它是CPython(不确定),我不认为它是PyPy(Rpython)。有什么建议我如何验证吗?

python abstract-syntax-tree control-flow-graph

3
推荐指数
1
解决办法
2631
查看次数

如何获取与 mysql 8.0 中的特定正则表达式匹配的所有表名?

我正在尝试检索具有特定名称格式的所有表,以便在这些表之间执行联合。我正在使用mysql Ver 8.0.13,并且我编写了以下查询来检索相关表:

show tables LIKE REGEX '^table_.+_class$';
Run Code Online (Sandbox Code Playgroud)

我无法找出此查询的正确语法:/

之后我计划合并所有这些表

我想避免编写这段代码,因为它不能很好地扩展:

SELECT * FROM table_french_class
UNION
SELECT * FROM table_history_class
UNION
SELECT * FROM table_pingpong_class
UNION
SELECT * FROM table_math_class
UNION
SELECT * FROM table_literature_class
Run Code Online (Sandbox Code Playgroud)

有人可以建议我如何处理这个问题吗?

谢谢

regex mysql

3
推荐指数
1
解决办法
2306
查看次数