Я пытаюсь определить цвет в центре обнаруженного круга от HoughCircles
.Я делаю это следующим образом:
print("Center of the circle: ", i[0]," ", i[1])
print(ci[i[0]][i[1]][0]," blue")
print(ci[i[0]][i[1]][1]," green")
print(ci[i[0]][i[1]][2]," red")
Здесь ci
- это массив изображений opencv, а i[0]
и i[1]
представляют координаты центра круга, заданные HoughCircles
вприведенный ниже код.
Но когда я это делаю, я получаю сообщение об ошибке:
IndexError: index 1034 is out of bounds for axis 0 with size 600
Я не мог понять причину этого.Я пытаюсь определить цвет в центре круга.
import cv2
import numpy as np
import sys
import math
img = cv2.imread("images/diffc.jpeg", 0)
ci = cv2.imread("images/diffc.jpeg")
cimg = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)
minDist = 150
param1 = 120
param2 = 37
minRadius = 120
maxRadius = 140
circles = cv2.HoughCircles(img,cv2.HOUGH_GRADIENT,1,minDist,
param1=param1,param2=param2,minRadius=minRadius,maxRadius=maxRadius)
if circles is None:
print("No circles detected!")
sys.exit(-1)
circles = np.uint16(np.around(circles))
for i in circles[0,:]:
# draw the outer circle
cv2.circle(cimg,(i[0],i[1]),i[2],(0,255,0),2)
# draw the center of the circle
cv2.circle(cimg,(i[0],i[1]),2,(0,0,255),3)
print("Center of the circle: ", i[0]," ", i[1])
# STATEMENTS THAT THROW ERROR
print(ci[i[0]][i[1]][0]," blue")
print(ci[i[0]][i[1]][1]," green")
print(ci[i[0]][i[1]][2]," red")
cv2.imshow('detected circles',cimg)
cv2.waitKey(0)
cv2.destroyAllWindows()
Вот изображение: Изображение