pictureBox를 사용해야 하는데 Mat을 그대로 사용할 수가 없다.
Bitmap 으로 변환을 해주어야 하는데 고맙게도 함수가 있더이다.
참고사이트가.. 음.. 참고가 아니라 그냥 전부이다.
Mat To Bitmap
Mat mat = new Mat("test.jpg", ImreadModes.Color);
// Mat mat = Cv2.ImRead("test.jpg", LoadMode.GrayScale);
Bitmap bitmap = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(mat);
생각보다 시간이 많이 걸린다는 점..
Mat을 생성할 때 ImRead함수를 사용할 수 있다.
Bitmap To Mat
Bitmap bitmap = new Bitmap("foobar.jpg");
Mat mat = OpenCvSharp.Extensions.BitmapConverter.ToMat(bitmap);
이거부터 안해봤다. 아직 사용할 일이 없어서.
후기는 댓글로..(남길 수 있나 ?)
Mat to byte[]
Mat mat = new Mat("foobar.jpg", ImreadModes.Color);
byte[] bytes1 = mat.ToBytes(".png");
byte[] bytes2;
Cv2.ImEncode(".jpg", mat, out bytes2);
byte[] to Mat
byte[] imageData = System.IO.File.ReadAllBytes("foobar.jpg");
Mat colorMat = Mat.FromImageData(imageData, ImreadModes.Color);
Mat grayscaleMat = Mat.FromImageData(imageData, ImreadModes.GrayScale);
Mat alt = Cv2.ImDecode(imageData, ImreadModes.GrayScale);
참고 사이트에 있긴 하지만.. 혹시나 사라질까봐 정리를 합니다.
'ETC > OpenCvSharp' 카테고리의 다른 글
[OpenCvSharp] Mat 자르기(SubMat) (0) | 2016.12.06 |
---|---|
[OpenCvSharp] Mat 회전 (getRotationMatrix2D, warpAffine) (0) | 2016.12.06 |
[OpenCvSharp] 설치 (0) | 2016.12.01 |