SimpleBlobDetector detectar exceção lançada

votos
0

Eu estou usando SimpleBlobDetector, é claro para detectar círculos, em imagens agarrado de uma câmera e sofreram cor OpenCV e filtros morfológicos. Estou recebendo uma

Exceção lançada no 0x000 ... (opencv_imgproc249.dll) em .exe: Violação de acesso de leitura localização 0x000 ...

Estou recebendo este erro na linha contendo: d.detect(canny, keypoints); Aqui está uma amostra do meu código:

std::vector<KeyPoint> keypoints;
SimpleBlobDetector d(params);
d.detect(canny, keypoints);
drawKeypoints(im, keypoints, im_with_keypoints, Scalar(0, 255, 0), DrawMatchesFlags::DRAW_RICH_KEYPOINTS);

canny é a partir da utilização de Canny(input, canny, 10, 30);

Alguém pode potencialmente explicar por que eu poderia estar recebendo esse erro?

EDITAR:

Eu percebi que estava usando o método de detecção de ponto-chave para a versão OpenCV <3. Tenho visto que mudou para:

Ptr<SimpleBlobDetector> d = SimpleBlobDetector::create(params);
std::vector<KeyPoint> keypoints;
d->detect(thresh, keypoints);
drawKeypoints(im, keypoints, im_with_keypoints, Scalar(0, 255, 0), DrawMatchesFlags::DRAW_RICH_KEYPOINTS);

No entanto, agora eu tenho um erro relacionado params. O seguinte erro lê:

E0312 - não definido pelo utilizador conversão apropriada de cv :: :: SimpleBlobDetector Parâmetros para const std :: string existe

Eu copiei esta exatamente a partir SimpleBlobDetector Tutorial e estranhamente tem esse problema.

Publicado 08/11/2018 em 06:41
fonte usuário
Em outras línguas...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more