Closed GoogleCodeExporter closed 9 years ago
Hi everyone. in "OpenCV2_Cookbook_Examples_Chapter_4": http://code.google.com/p/javacv/wiki/OpenCV2_Cookbook_Examples_Chapter_4 I translated into java. But it doesn't work for me. This's my code: Histogram1D.java ... 19 class Histogram1D { 20 int numberOfBins=256; 21 float minRange=0.0f; 22 float maxRange=255.0f; 23 24 public Histogram1D(){} 25 26 public Histogram1D(float minRange,float maxRange){ 27 this.minRange=minRange; 28 this.maxRange=maxRange; 28 } 30 31 public CvHistogram getHistogram(IplImage img,IplImage mask){ 32 int[] sizes=new int[numberOfBins]; 33 float[][] ranges={{minRange,maxRange}}; 34 CvHistogram hist=cvCreateHist(1, sizes, CV_HIST_ARRAY, ranges, 1); 35 IplImage[] arrayimg={img}; 36 cvCalcHist(arrayimg, hist, 0, mask); 37 return hist; 38 } 39 40 public float[] getHistogramAsArray(IplImage img){ 41 CvHistogram histogram=getHistogram(img, null); 42 float[] dest=new float[numberOfBins]; 43 for(int i=0;i<numberOfBins;i++){ 44 dest[i]=cvQueryHistValue_1D(histogram, i); 45 } 46 cvReleaseHist(histogram); 47 return dest; 48 } 49 } ... Ex1ComputeHistogram.java ... 15 public class Ex1ComputeHistogram { 16 public static void main(String args[]){ 17 int sumOfHistogramBins=0; 18 IplImage img=cvLoadImage("data/group.jpg",CV_LOAD_IMAGE_GRAYSCALE); 19 Histogram1D h=new Histogram1D(); 20 float[] histogram=h.getHistogramAsArray(img); 21 for(int i=0;i<histogram.length;i++){ 22 System.out.println(i+":"+histogram[i]); 23 sumOfHistogramBins+=histogram[i]; 24 } 25 int numberOfPixels=img.width()*img.height(); 26 System.out.println("Number of pixels:"+numberOfPixels); 27 System.out.println("Sum of Histogram Bins:"+sumOfHistogramBins); 28 } 29 } ... And error: OpenCV Error: Bad argument (unrecognized or unsupported array type) in unknown function, file ..\..\..\src\opencv\modules\core\src\array.cpp, line 1735 Exception in thread "main" java.lang.RuntimeException: ..\..\..\src\opencv\modules\core\src\array.cpp:1735: error: (-5) unrecognized or unsupported array type at com.googlecode.javacv.cpp.opencv_core.cvGetReal1D(Native Method) at com.googlecode.javacv.cpp.opencv_legacy.cvQueryHistValue_1D(opencv_legacy.java:106) at javacv.cookbook.examples.chap4.Histogram1D.getHistogramAsArray(Histogram1D.java:44) at javacv.cookbook.examples.chap4.Ex1ComputeHistogram.main(Ex1ComputeHistogram.java:20) Anyone help me. Thank.
Original issue reported on code.google.com by tuananhv...@gmail.com on 9 Oct 2012 at 9:15
tuananhv...@gmail.com
That question has been answered on the mailing list as it should be. This isn't an issue with JavaCV.
Original comment by samuel.a...@gmail.com on 12 Oct 2012 at 9:20
samuel.a...@gmail.com
Original issue reported on code.google.com by
tuananhv...@gmail.com
on 9 Oct 2012 at 9:15