반응형

이상하게 정리 했던거같은데... 다 없네


이미지를 profiling 하기위해 원하는 크기만큼 잘라야 한다.

그런데... C++ 에서는Range 설정해서 자를 수 있었는데 C#은 또 다르네?


필요한 거슨 Rect 로 원하는 크기 설정.

SubMat 메소드로 크기만큼 자르면 된다.


매우 간단.




위의 소스 코드는 간단하다
Rect 300, 300 기준으로 높이 너비 300, 300 사각형만큼 자른다는 것!

끝!


반응형

'ETC > OpenCvSharp' 카테고리의 다른 글

[OpenCvSharp] Mat 회전 (getRotationMatrix2D, warpAffine)  (0) 2016.12.06
[OpenCvSharp] Mat to Bitmap  (2) 2016.12.01
[OpenCvSharp] 설치  (0) 2016.12.01
반응형

opencv 공부하면서 정리를 했던것 같은데 다시 쓰려고 보니까 정리한 글이 안보인다..

OpenCvSharp은 조금 다르므로 다시 정리를 해보자.


내가 원하는 이미지를 회전 시켜보자앗.



우선 함수가 Cv2.GetRotationMatrix2D(), Cv2.WarpAffine() 가 사용된다.


C#에서 사용될 것이므로 

보여지는 것은 imshow()를 사용하는 것이 아니라 PictureBox에 표현할 것이다.


우선 회전하는 부분 코드만 옮겨 보자.





denosingImgMat 을 rotateImgMat 으로 원하는 만큼 회전 시키는 코드이다.

Point2f 로 회전 시킬 이미지의 중심을 설정.
GetRotationMatrix2D 함수로 원하는 각만큼 회전 시켜줄 틀을 만들어 준다.
WarpAffine 함수로 원하는 틀에 맞춰 변경비켜준다.

pictureBox에 표현해주려면 BitMap으로 변경시켜주어야 하는데
CV_8U 타입만 가능하므로 타입 변경 후 Bitmap으로 변환 시켜주면 된다.


결과








끝!


반응형

'ETC > OpenCvSharp' 카테고리의 다른 글

[OpenCvSharp] Mat 자르기(SubMat)  (0) 2016.12.06
[OpenCvSharp] Mat to Bitmap  (2) 2016.12.01
[OpenCvSharp] 설치  (0) 2016.12.01
반응형

pictureBox를 사용해야 하는데 Mat을 그대로 사용할 수가 없다.

Bitmap 으로 변환을 해주어야 하는데 고맙게도 함수가 있더이다.


참고 : http://blog.naver.com/PostView.nhn?blogId=nuren1&logNo=220727174546&redirect=Dlog&widgetTypeCall=true


참고사이트가.. 음.. 참고가 아니라 그냥 전부이다. 



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
반응형

OpenCv를 C#에서 사용하려면 OpenCvSharp를 설치해야 된다.


설치 방법은 매우.. 진짜 매우 간단하다.


환경 : Windows10 32bit, Visual Studio 2015


 - 프로젝트를 생성하고 솔루션 탐색기로 간다.


 -  프로젝트이름 우클릭 >> NutGet 패키지 관리를 선택



 - 찾아보기 > "opencvsharp" 검색 > "OpenCvSharp-AnyCPU" 선택 및 설치


- 위사진처럼 OpenCvSharp.CPlusPlus 추가

  - 추가하지 않을 경우 c 에서 opencv 사용하는 것처럼 사용하면 됩니다.

  







반응형

'ETC > OpenCvSharp' 카테고리의 다른 글

[OpenCvSharp] Mat 자르기(SubMat)  (0) 2016.12.06
[OpenCvSharp] Mat 회전 (getRotationMatrix2D, warpAffine)  (0) 2016.12.06
[OpenCvSharp] Mat to Bitmap  (2) 2016.12.01

+ Recent posts