2014-06-10 2 views
-1

가로 세로 비율을 유지하면서 이미지의 크기를 조정하는 프로그램을 작성했습니다. 기본적으로, 종횡비가 보존 된 20x20 상자에 원본 이미지를 가져 오려고합니다.resize를 사용할 때의 포인터 포인터 예외 Cv Java Open

float ra= (float)20/image.width(); 
Size dsize = new Size((int)(image.height()*ra),20); 
// System.out.println(image.height() + " "+image.width()); 
//System.out.println((int)(image.height()*ra)+" " + 20); 
Imgproc.resize(image,output, dsize,ra,ra, Imgproc.INTER_LINEAR);  

입력 이미지는 매트입니다. image.height() = 10, image.width() = 28. 새로운 크기는 7,20이 될 것입니다. 그러나 내가 코드를 실행할 때 Imgproc.resize()에서 널 포인터 예외가 발생합니다. 이유를 찾을 수 없습니다.
은 내가

Imgproc.resize(image,output,dsize); 
+0

dsize가 null이 아닌 것은 확실합니다. 이미지 및 출력 또한 null로되지 않습니다. dsize = new Size (20,20); 이것은 종횡비를 보존하지 않습니다. – user3531996

답변

0
  • 사용 중 하나 dsize 또는 배율 인수, 둘을 실행하는 경우에도 같은 오류가 발생합니다.

  • 당신은 아마 잊었 :

    출력 = 새로운 매트(); // 빈 매트를 전달할 수 있지만 null이 아닙니다.

+0

매트 출력 = 새로운 매트(); 그것은 내가 dsize = new Size (20,20)를 넣으면 작동합니다. 그러나 그것은 그 목적을 달성하지 못할 것입니다. – user3531996

+0

Imgproc.resize (이미지, 출력, 크기)를 시도했습니다. 같은 문제가 .. – user3531996

+1

^^ 당신은 자신을 모순하는 것 같습니다 – berak

0

밖으로 나옵니다. 이미지를 매트로 강하게 변환하면서 행과 열을 교체했습니다. BufferedImage를 사용하여 높이와 너비가 섞여 있습니다. 그것은 지금 작동합니다 .. 모두에게 감사합니다!