Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:在图像中查找黑色背景_Python_Python 3.x_Image Processing_Computer Vision - Fatal编程技术网

Python:在图像中查找黑色背景

Python:在图像中查找黑色背景,python,python-3.x,image-processing,computer-vision,Python,Python 3.x,Image Processing,Computer Vision,我有一个图像,我想找到零区域黑色的强度。我的想法是在黑色区域周围画一个小方框。这就是我所期望的结果 x、 y是盒子的中心。我在它周围画了一个40个单位的盒子 我的尝试如下 import cv2 from random import * img = cv2.imread("path/to/image.png", cv2.IMREAD_GRAYSCALE) img = cv2.resize(img, (600, 800)) rows,cols = img.shape[:2] try:

我有一个图像,我想找到零区域黑色的强度。我的想法是在黑色区域周围画一个小方框。这就是我所期望的结果

x、 y是盒子的中心。我在它周围画了一个40个单位的盒子

我的尝试如下

import cv2
from random import *

img = cv2.imread("path/to/image.png", cv2.IMREAD_GRAYSCALE)

img = cv2.resize(img, (600, 800)) 
rows,cols = img.shape[:2]

try:
    for i in range(100):
        x = randint(1, rows)    # Pick a random number between 1 and rows.
        y = randint(1, cols)    # Pick a random number between 1 and rows.

        while True:
            sum_intensity = 0
            for i in range(x-20, x+20):
                for j in range(y-20, y+20):
                    intensity = img[i,j]
                    sum_intensity += intensity

            if sum_intensity == 0:
                print("zero intensity found")
                cv2.rectangle(img, (x-20, y+20), (x+20, y-20), (255, 255, 255), 2)
                cv2.imwrite("path/to/save.png", img) 
                break

            else:
                print("No zero intensity")
                break

except:
    pass
生成的框的一个示例如下所示。。你可以看到其中有灰色区域的重叠框,这是我想要避免的!!我必须选择完整的黑色背景。而且我只需要一个盒子。。。没必要去看几个。我知道我可以使用boolian变量,但不知道如何在python中使用。

如果我理解正确,您希望找到仅包含黑色值0的41 x 41正方形

您可以通过执行41 x 41放大并选择任意黑色像素(即所需正方形的中心)来实现这一点。图像二值化以提高清晰度;白色方块是由于原始图像中的伪像素造成的


始终考虑提供原始图像,无需注释和预处理。感谢您的建议。