전체 글 132

[C#] DataTable To CSV File (String.Join() 사용)

아학학학학학학.. 매우 간단하게 DataTable을 CSV 파일로 저장하는 방법을 찾아냈다. 포지션 위치랑 각도 등을 테이블로 만든 후 csv 파일로 저장해야 되서 해보았다.반복도 매우 심플하게 해놓았다. 가져다 쓰시게.. 난 까먹을거 같아서 정리를.. 1. 파일 저장 위치 지정2. dataTable columns를 String.Join()을 사용해서 파일에 저장.3. 각 row를 String.Join()을 사용해서 파일에 저장.4. 저장 확인. 우선 코드 private void btnSaveTable_Click(object sender, EventArgs e) { //파일 저장 위치 선택. SaveFileDialog saveDlg = new SaveFileDialog(); saveDlg.InitialD..

ETC/C# 2017.01.04

[C#] c++ Dll import (출처 및 팁..)

출처 : http://blog.danggun.net/16 위의 출처대로 하면 일단은 잘 됩니다. 단 제가 무시하고 했던것이 1-0.인크루드 이 부분이었는데꼭!!!!!!!!! #include 이거를 헤더에서 추가를 해주어야 합니다!!!! 꼮 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! tip1. 전달할 인자가 포인터 이면 ref를 사용해서 넘기면 됩니다.예를 들어 void swap(int *a, int *b) 로 c++에서 선언했다면C#에서는 void swap(ref int a, ref int b) 이렇게 해주면 됩니다. tip2. c++ 컴파일 환경과 C# 컴파일 환경이 맞아야 합니다. C#의 경우 anyCpu 라고 나오는데 이거스로 하면 c++ x86 DLL을 ..

ETC/C# 2017.01.03

[C++] DLL 만들기/사용하기

출처 : https://msdn.microsoft.com/ko-kr/library/ms235636.aspxMSDN 예제를 가져다 쓰고 내가 원하는 기능이 가능한지 테스트를 해볼것입니다. 아.. DLL 어렵도다. 일단 만들면서 익히도록 합시다. 뭐 일단 프로젝트 부터 쭈루룩 자 이렇게 만들고 본격적으로 코딩을 해보아요...위의 출처 MSDN에 나온 설명을 토대로 이런 저런 내가 필요한 작업들을 테스트 해보아요 헤더 부터 작성을 해봅시다. MathFuncsDll.h #ifdef MATHFUNCSDLL_EXPORTS #define MATHFUNCSDLL_API __declspec(dllexport) #else #define MATHFUNCSDLL_API __declspec(dllimport) #endif na..

programing/C++ 2016.12.28

[C#] openFileDialog.FileName에서 파일 이름만(Path.GetFileName)

OpenFileDialog로 파일 경로를 구해온 뒤FileName에서 파일 이름만 구해오고 싶다.어떤 사람은 "\\"위치에서 그다음 인덱스를 이용해서 구해오는 사람도 있었으나.. 매우 간단하게 구해주는 함수가 있어서 정리할 겸 공유 할겸 정리를 해본다. 우선 경로에서 파일 이름과 확장자 를 가져오는 방법은Path.GetFileName(openFileDialog1.FileName); 위의 방법으로 하면 파일명과 확장자를 전부 가져 온다. 사실 내가 필요한건 확장자를 빼고 파일명만 가져오고 싶었다. 확인결과 역시나 함수가 있었다. Path.GetFileNameWithoutExtension(openFileDialog1.FileName); 위의 방법을 사용하면 확장자를 뺀 파일명만 리턴해준다. 매우 간단 ㅇㅈ?..

ETC/C# 2016.12.22

[C#] CSV 파일 만들기(string.Join 함수)

CSV 파일을 만들어야 한다.내가 원하는 기능은 1. 한줄씩 파일에 입력하는 것.2. listbox에 있는 데이터를 csv에 입력하는 것.3. chart에 있는 y축 값을 차례대로 csv에 입력하는 것. 우선 코드를 다 붙여놓고 설명을 해보자. private void btnSaveAngle_Click(object sender, EventArgs e) { //저장 위치 결정. SaveFileDialog saveDlg = new SaveFileDialog(); saveDlg.InitialDirectory = System.Environment.CurrentDirectory; saveDlg.Filter = "csv (*.csv)|*.csv|txt (*txt)|*.txt|All files (*.*)|*.*"; i..

ETC/C# 2016.12.20

[OpenCvSharp] Mat 자르기(SubMat)

이상하게 정리 했던거같은데... 다 없네 이미지를 profiling 하기위해 원하는 크기만큼 잘라야 한다.그런데... C++ 에서는Range 설정해서 자를 수 있었는데 C#은 또 다르네? 필요한 거슨 Rect 로 원하는 크기 설정.SubMat 메소드로 크기만큼 자르면 된다. 매우 간단. Rect rect = new Rect(300, 300, 300, 300); Mat dstMat = srcMat.SubMat(rect); 위의 소스 코드는 간단하다Rect 300, 300 기준으로 높이 너비 300, 300 사각형만큼 자른다는 것! 끝!

ETC/OpenCvSharp 2016.12.06

[OpenCvSharp] Mat 회전 (getRotationMatrix2D, warpAffine)

opencv 공부하면서 정리를 했던것 같은데 다시 쓰려고 보니까 정리한 글이 안보인다..OpenCvSharp은 조금 다르므로 다시 정리를 해보자. 내가 원하는 이미지를 회전 시켜보자앗. 우선 함수가 Cv2.GetRotationMatrix2D(), Cv2.WarpAffine() 가 사용된다. C#에서 사용될 것이므로 보여지는 것은 imshow()를 사용하는 것이 아니라 PictureBox에 표현할 것이다. 우선 회전하는 부분 코드만 옮겨 보자. Point2f pt = new Point2f(denoisingImgMat.Rows / 2, denoisingImgMat.Cols / 2); Mat rotate = Cv2.GetRotationMatrix2D(pt, degree, 1.0); rotateImgMat = ..

ETC/OpenCvSharp 2016.12.06

[OpenCvSharp] Mat to Bitmap

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..

ETC/OpenCvSharp 2016.12.01

[OpenCvSharp] 설치

OpenCv를 C#에서 사용하려면 OpenCvSharp를 설치해야 된다. 설치 방법은 매우.. 진짜 매우 간단하다. 환경 : Windows10 32bit, Visual Studio 2015 - 프로젝트를 생성하고 솔루션 탐색기로 간다. - 프로젝트이름 우클릭 >> NutGet 패키지 관리를 선택 - 찾아보기 > "opencvsharp" 검색 > "OpenCvSharp-AnyCPU" 선택 및 설치 - 위사진처럼 OpenCvSharp.CPlusPlus 추가 - 추가하지 않을 경우 c 에서 opencv 사용하는 것처럼 사용하면 됩니다.

ETC/OpenCvSharp 2016.12.01

cv::Mat copy to std::vector

opencv를 사용해서 개발을 시작할 때 Mat 을 vector로 바꾸는 작업을 했었다.그때는 틀림 없이 Mat::copyTo 함수를 사용해서 간단하게 했던것 같은데다시 작업을 하려니 되질 않네...다른 방법을 찾아 나섰다. 검색어 : 구글 - mat copyto vector for문을 이용해서 하는 방법도 많이 나오지만나는 함수 하나로 해결하고 싶었다. assign 함수를 사용하면 간단하게 끝낼 수 있다.vector 끼리 복사 할때 사용했었는데 Mat 도 적용 가능 하다. 자료형이 double인 변수를 복사하려면 Mat src; /* Mat을 채우는 작업 */ vector dst; dst.assign((double*)src.datastart, (double*)src.dataend); 이렇게 하면 한방에..

ETC/OpenCV 2016.11.23