Cześć,
Staram się napisać deskryptor HOG ale nie wylicza mi wektora, cały czas są tam tylko zera. Wg wzoru win_size * n_bins / cell_size obliczyłam że mój wektor powinien mieć 576 wartość, ale nawet jeśli element przechowujący wektor jest krótszy to nie wywala błędu. Wygląda to tak jakby wgl nie dochodziło do momentu wykonywania funkcji compute.

 public class HOG {

	public static void main(String[] args) {
		
		String src = "C:\\Users\\src\\3.jpg";
		Mat image = opencv_imgcodecs.imread(src);
		Mat image_grey = new Mat();
		opencv_imgproc.cvtColor(image, image_grey, opencv_imgproc.CV_BGR2GRAY);
			
		Size picture_size = new Size(64,64); // image size
		opencv_imgproc.resize(image_grey, image_grey, picture_size);
	
		Size win_Size = new Size(64,64); 
		Size block_size = new Size(16,16);
		Size cell_size = new Size(8,8);
		Size block_stride = new Size(8,8); 
		int n_bins = 9;	
		
		HOGDescriptor HOG = new HOGDescriptor(win_Size, block_size, block_stride, cell_size, n_bins);
		HOGDescriptor HOG2 = new HOGDescriptor(win_Size, block_size, block_stride, cell_size, n_bins);
		
		float[] table = new float[576];
		Size winStride = new Size(0,0); 
		Size padding = new Size(0,0); 
		PointVector locations = new PointVector();
		
		HOG.compute(image_grey, table, winStride, padding, locations);
		FloatBuffer arg1 = FloatBuffer.allocate(576);
		HOG2.compute(image, arg1, winStride, padding, locations);
		
		for(int i=0;i<table.length;i++){
		System.out.println(arg1.get(i));
		System.out.println(table[i]);
		}
	}

}

Nie mam pojęcia czy to kwestia typu obrazka czy złych parametrów deskryptora. Czy jest ktoś wstanie stwierdzić gdzie mam błąd? :)