GLCM in opencv2 (Gray-Level Co-occurrence-Matrizen)
Die legacy-Funktion GLCM nicht durchführen, noch in opencv2. Ich verwende den folgenden code:
#import <opencv2/legacy.hpp>
cv::Mat inputIm = [in_image CVMat];
cv::Mat grayIm = [in_image CVGrayscaleMat];
//cv::cvtColor(inputIm, grayIm, cv::COLOR_RGB2GRAY);
//here I get an error: "no matching function..." !!!
CvGLCM* glcm = cvCreateGLCM(grayIm, 1, NULL, 4, CV_GLCM_OPTIMIZATION_LUT);
cvCreateGLCMDescriptors(glcm, CV_GLCMDESC_OPTIMIZATION_ALLOWDOUBLENEST);
double d = cvGetGLCMDescriptor(glcm, 0, CV_GLCMDESC_HOMOGENITY );
double a = 1; double *ave = &a;
double s = 1; double *sd = &s;
cvGetGLCMDescriptorStatistics(glcm, CV_GLCMDESC_ENERGY, ave, sd);
NSLog(@"ave = %f sd = %f", *ave, *sd);
Ich bereits versucht zu verwenden den namespace cv::CvGLCM* glcm = cv::cvCreateGLCM(grayIm,.... - aber keine änderung :/
Jede Hilfe zu diesem wird sehr geschätzt !
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was half, war schließlich die Antwort von Alexander Shishkov hier gepostet: link1
Habe ich den Austausch der texture.cpp code und kompiliert meine opencv-framework wieder (hier erklärt: link2: d.h. in allem, was ich neu Tat den letzten Schritt der drei...).
Alles tun, dass meine glcm-code führt ohne Ausnahme und liefert zwei zahlen pro glcm-Methode.
Die legacy-Funktion
cvCreateGLCM
nimmt die ältereIplImage*
als Eingabe, so müssen Sie konvertieren Sie Ihrecv::Mat
Bild zuerst.Versuchen Sie dies:
Fand ich diese, wenn ich war auf der Suche für GLCM "Umsetzung der GLCM Haralick-Merkmale in openCV", diese bekommt 12 von 14 textur-features
https://github.com/Abello966/opencv-haralickfeatures