#c #opencv
#c #opencv
Вопрос:
Я проверяю OpenCV squares.cpp учебное пособие. Попробуйте использовать другую часть кода порогового уровня, используя «N», которая определяется как глобальная 11. Почему нам нужно, чтобы N определялось как 11? Есть ли значение для 11 для порогового значения?
int thresh = 50, N = 11;
// find squares in every color plane of the image
for( int c = 0; c < 3; c )
{
int ch[] = {c, 0};
mixChannels(timg, gray0, ch, 1);
for( int l = 0; l < N; l )
{
if( l == 0 )
{
Canny(gray0, gray, 0, thresh, 5);
dilate(gray, gray, UMat(), Point(-1,-1));
}
else
{
// apply threshold if l!=0:
// tgray(x,y) = gray(x,y) < (l 1)*255/N ? 255 : 0
threshold(gray0, gray, (l 1)*255/N, 255, THRESH_BINARY);
}
}
Комментарии:
1. Пожалуйста, приложите образец изображения и еще немного кода!! (закройте, по крайней мере, «для»)
2. Потому что автор должен был выбрать какое-то число, и 11 было достаточно разумным (не слишком высоким, не слишком низким). Все, что он устанавливает, — это количество различных пороговых уровней (с равным интервалом в диапазоне 0-255), которые нужно попробовать.