小编Bru*_*ito的帖子

Opencv未找到所有轮廓

我试图找到该图像的轮廓,但方法findContours只返回1 个轮廓,该轮廓在图像 2中突出显示。我试图找到所有外部轮廓,例如这些数字位于内部的圆圈。我究竟做错了什么?我可以做什么来实现它?

图1:

在此输入图像描述

图2:

在此输入图像描述

以下是我的代码的相关部分。

thresh = cv2.threshold(image, 0, 255,
                           cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)[1]

cnts = cv2.findContours(thresh.copy(), cv2.RETR_EXTERNAL,
                            cv2.CHAIN_APPROX_SIMPLE)
Run Code Online (Sandbox Code Playgroud)

当我更改cv2.RETR_EXTERNALcv2.RETR_LIST它时,它似乎检测到相同的轮廓两次或类似的东西。图 3 显示了首次检测到圆的边界,然后再次检测到圆的边界,如图 4 所示。我试图仅找到这些圆的外边界。我怎样才能做到这一点?

在此输入图像描述图3

在此输入图像描述图4

python opencv contour omr

3
推荐指数
2
解决办法
7213
查看次数

在树的图形表示中绘制线条

我试图使用awt和swing绘制二叉树.我可以显示树的节点,但我不能从父节点到子节点绘制线条.我使用以下类:Node(表示节点),treeGUI,DrawTree和Main.这是没有线的输出.

Árvorebinária

我的目的是显示从父节点到子节点的行.我尝试使用类中的drawLinemetohd Graphics,这是输出:

Arvore

方法drawTree定义节点在屏幕中的值的位置,并在ArrayLists中存储节点的位置.drawLine方法绘制线条.我认为这些行是这样的,因为值以特定的顺序存储在ArrayList中.我尝试了各种方法以正确的方式画线,但都不成功.我如何画出从父母到孩子的线条?

public class TreeGUI extends JFrame {

    private JPanel contentPane;
    public Node node;
    public DrawTree drawer;

    /**
     * Create the frame.
     */
    public TreeGUI(Node node) {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 500, 500);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        contentPane.setLayout(new BorderLayout(0, 0));
        drawer = new DrawTree(node);
        contentPane.add(drawer);
        setContentPane(contentPane);
        this.node = node;
        setVisible(true);
    }

}

class DrawTree extends JPanel{

    public Node node;
    public static ArrayList listX = new ArrayList();
    public static ArrayList listY = …
Run Code Online (Sandbox Code Playgroud)

java swing binary-tree awt data-structures

0
推荐指数
1
解决办法
814
查看次数

标签 统计

awt ×1

binary-tree ×1

contour ×1

data-structures ×1

java ×1

omr ×1

opencv ×1

python ×1

swing ×1