【问题标题】:Selecting ROI in Auto Resized Window在自动调整大小窗口中选择 ROI
【发布时间】:2017-11-28 05:45:54
【问题描述】:

我正在尝试通过使用 namedWindow("name",WINDOW_AUTOSIZE) 使用 cv2.selectROI() 选择感兴趣区域

但是当我选择 ROI 时,我无法看到该框。

使用 namedWindow("name",WINDOW_NORMAL) 框是可见的,它可以工作。

if __name__ == '__main__' :

    # Read image
    im = cv2.imread("386368.jpg")

    showCrosshair = False
    fromCenter = False
    cv2.namedWindow("Image",2)
    r = cv2.selectROI("Image", im, fromCenter, showCrosshair)
    cv2.waitKey(30)

我也使用 cv2.resize() 时出现同样的问题。 我应该增加 waitKey 值吗?或者我该如何解决这个问题。

【问题讨论】:

    标签: python-3.x opencv


    【解决方案1】:

    您的代码还不够。这是我的结果和代码。


    #!/usr/bin/python3
    # 2017.11.28 14:32:33 CST
    
    import cv2
    import numpy as np
    
    if __name__ == '__main__' :
        # Read image
        img = cv2.imread("test.png")
        cv2.namedWindow("Image",2)
        roi = cv2.selectROI("Image", img, False, False)
    
        ## Display the roi
        if roi is not None:
            x,y,w,h = roi
            mask = np.zeros_like(img, np.uint8)
            cv2.rectangle(mask, (x,y), (x+w, y+h), (255,255,255), -1)
            masked = cv2.bitwise_and(img, mask )
            cv2.imshow("mask", mask)
            cv2.imshow("ROI", masked)
    
        cv2.waitKey()
    

    【讨论】:

    • 感谢您的回答,但 cv2.selectROI 可以让您绘制一个蓝色框,如果我调整窗口大小,我不会得到那个框。
    • @janu777 我尝试在我的电脑上调整Image 窗口的大小,没关系。
    • 是的,有些图片可以调整大小,但有些图片不行。
    • ...我刚刚测试了一个。然后我不知道为什么。
    猜你喜欢
    • 2017-03-12
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    • 2011-02-28
    • 2023-04-10
    相关资源
    最近更新 更多