Python:在图像中查找黑色背景
我有一个图像,我想找到零区域黑色的强度。我的想法是在黑色区域周围画一个小方框。这就是我所期望的结果 x、 y是盒子的中心。我在它周围画了一个40个单位的盒子 我的尝试如下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:
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放大并选择任意黑色像素(即所需正方形的中心)来实现这一点。图像二值化以提高清晰度;白色方块是由于原始图像中的伪像素造成的
始终考虑提供原始图像,无需注释和预处理。感谢您的建议。