Me estoy acercando a una tarea de Biografía, y necesito extraer algunas características de algunas imágenes de celda.Descartar valores atípicos Puntos clave SIFT en la imagen de celda con OpenCV
Utilicé el algoritmo SIFT para extraer los puntos clave dentro de la imagen, como se puede ver en la imagen.
Como también se puede ver en la imagen (círculo rojo), algunos puntos clave son valores atípicos y no quiero para calcular cualquier característica en ellos.
que obtuvo el vector cv::KeyPoint
con el siguiente código:
const cv::Mat input = cv::imread("/tmp/image.jpg", 0); //Load as grayscale
cv::SiftFeatureDetector detector;
std::vector<cv::KeyPoint> keypoints;
detector.detect(input, keypoints);
pero me gustaría que descartar a partir de los vector
todos esos puntos clave que, digamos por ejemplo, tienen menos de 3 puntos clave dentro de un cierto región de interés (ROI) centrada en ellos en la imagen.
por lo tanto necesito para implementar una función que devuelve el número de puntos clave dentro de un cierto retorno de la inversión dada como entrada:
int function_returning_number_of_key_points_in_ROI(cv::KeyPoint, ROI);
//I have not specified ROI on purpose...check question 3
Tengo tres preguntas:
- ¿Hay alguna función existente haciendo ¿algo parecido?
- Si no, ¿me puede ayudar a entender cómo implementarlo?
- ¿Utilizaría un ROI circular o rectangular para esta tarea? ¿Y cómo lo especificaría en la entrada?
Nota:
me olvidó especificar que me gustaría una implementación eficiente de la función, es decir, la comprobación de cada punto clave de la posición relativa de todos los demás con respecto a que no sería una buena solución (si existe otra forma de hacerlo).
¿Se puede publicar la imagen original? Me gustaría probar algo, y luego publicar los resultados si es exitoso :) – mevatron
@mevatron - http://s18.postimage.org/jayhj4q3d/phase1_image1.jpg aquí va, he subido la versión RGB, simplemente conviértalo en escala de grises si así lo desea ... hágamelo saber lo que está haciendo;) – Matteo
Puede usar RANSAC, si puede definir un modelo. RANSAC decidirá qué puntos son inliers (se ajustan al modelo) y atípicos (no se ajusta al modelo). Tal vez su modelo puede ser algo así como un 3 puntos que definen un área más pequeña que X (significa que están lo suficientemente cerca). Es una idea –