Я изучаю компьютерное зрение прямо сейчас. И я очень смущен о части Кандиновый детектор края.Может ли Canny работать в OpenCV как с одним каналом изображения в оттенках серого, так и с тремя каналами цветного изображения?
И когда я пытаюсь генерировать цвет изображения на осторожном в OpenCV. У меня есть несколько вопросов.
И вот код, который я пробовал.
def auto_canny(image, sigma=0.33):
v = np.median(image)
lower = int(max(0, (1.0 - sigma) * v))
upper = int(min(255, (1.0 + sigma) * v))
edged = cv2.Canny(image, lower, upper)
тогда
##### first situation #####
img = cv2.imread('mango.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
auto = auto_canny(gray)
cv2.imwrite('mango_gray_edge.jpg', auto)
в этой ситуации, я получил изображение вроде этого: enter image description here
##### second situation #####
img = cv2.imread('mango.jpg')
auto = auto_canny(img)
cv2.imwrite('mango_color_edge.jpg', auto)
в этой ситуации, я получил изображение вроде этого: enter image description here
и это оригинал inal image: i.stack.imgur.com/45TAU.jpg (извините за это, у меня недостаточно репутации, чтобы опубликовать более двух ссылок ...)
Разница между первой ситуацией и второй ситуацией заключается в том, Я конвертирую цветное изображение в полутоновое изображение. BUT, я смущен об этом. Потому что,
В первой ситуации я конвертирую изображение в оттенки серого, поэтому изображение представляет собой одноканальное изображение. И во второй ситуации изображение по-прежнему остается тремя каналами.
И край намного лучше, когда я не преобразовал его в полутоновое изображение, как вторая ситуация.
SO мой вопрос,
1) Имеет ли Осторожные функцию в OpenCV включают метод для преобразования изображения в оттенках серого? Я имею в виду, мне нужно преобразовать изображение в оттенки серого, прежде чем использовать cv2.Canny()
2) Почему можно было позаниматься как с одним каналом (конвертация первой ситуации в оттенки серого), так и с тремя каналами (исходное изображение, такое как вторая ситуация) одновременно?
3) Как работает canny на самом деле? Не могли ли вы иметь дело с цветным изображением напрямую или цветное изображение сначала нужно преобразовать в полутоновое изображение?
4) Из шагов canny, когда мы вычисляем градиент, я думаю, что он должен быть одним каналом, тогда он может быть рассчитан. Если изображение представляет собой цветное изображение, включая три канала, как мы можем вычислить градиент? Рассчитываем ли мы три канала отдельно? Как работает?
Он может обрабатывать цветные изображения? Когда они это совершили? В моей книге говорится, что Canny обрабатывает только оттенки серого. – Rich