본문 바로가기

Programming

OpenCV (Java) How to change Mat to Image, and save 2 (OpenCV Mat 에서 Image 변환, 저장) 2


 OpenCV (Java) How to change Mat to Image, and save 2 


 (OpenCV Mat 에서 Image 변환, 저장) 2



Fourier transter 이후에 shift 까지 마쳤던 것들을 다시 inverse transfer 한 후에

돌아온 Mat을 저장해서 확인해보려고 하니 계속 오류가 났다.

돌아온 Mat은 데이터 타입이 CV_16F (double) 형이었고,

오류나는 메시지로는 CV_8UC 등 밖에 안맞는다고.. 아무튼 8비트 까지만 된다고..



해답은 돌아온 Mat을 Core의 split 을 이용하여 잘라내주고,

잘라낸 값을 정규화해서 해당 mat을 image로 만들면 잘 된다.




 I got some errors when I need to make and save image file from mat inverse transferd after fourier transferring.


Inverse transferred mat data type was CV_16F (double), error msg told me uncompatible error - number.. CV_8UC etc only .. anyway, 8 bit


 Solution was... use Core split to separate in list, and normalized first channel.

And it worked well.




If you need previous code.. ( here )


밑의 matrix2Image 함수 및 saveToFile 함수가 없다면.. ( 여기로 )



e.g.



public static void saveMatImage(Mat src, String savePath) {


List<Mat> planes = new LinkedList<>();

Mat restoredImage = new Mat();

Core.split(src, planes);

Core.normalize(planes.get(0), restoredImage, 0, 255, Core.NORM_MINMAX);

// Convert Mat to Image, and Save

Image gray = matrix2Image(restoredImage);

  // Save file

  ImageUtills.saveToFile(gray, savePath);


}








something else...




2018/10/16 - [Programming/Image Processing] - OpenCV (Java) How to change Mat to Image, and save (OpenCV Mat 에서 Image 변환, 저장)

2018/10/16 - [Programming/Java] - Java enum class 자바 이넘 클래스


2018/10/11 - [Programming/Design Pattern ] - Design pattern - Singleton (디자인패턴 - 싱글턴)


2018/10/08 - [Algorithm/Code Signal (Code Fights)] - Aracade Intro #12 SortByHeight

2018/10/06 - [Algorithm/Code Signal (Code Fights)] - Aracade Intro #11 IsLucky

2018/10/03 - [Algorithm/Code Signal (Code Fights)] - Aracade Intro #10 CommonCharacterCount


2018/10/02 - [Programming/Image Processing] - OpenCV Java/C++ 


FourierFastTransferShift(fftshift) 푸리에 변환 후 위치 재설정 함수 (Matlab - fftshift) - (1)