광고


[OPENCV][CUDA] Mat -> GPUMat, GpuMat -> Mat C# OpenCV

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//
////explicit conversion: Mat -> GPUMat
//
Mat myMat;
GpuMat myGpuMat;
myGpuMat.upload(myMat); //Via a member function
//Or
GpuMat myGpuMat(myMat) //Via a constructor
//Use myGpuMat here...
 
 
 
//
////implicit conversion: GpuMat -> Mat
//
GpuMat myGpuMat;
Mat myMat = myGpyMat;
//Use myMat here...
 
 
 
cs

[C#] Datagridview 편집사항 적용 및 동기화 C#

1
2
3
4
5
6
7
// 선언
DataGridView dgvScript;
 
// End Edit로 Commit
dgvScript.EndEdit();
// Update로 
dgvScript.Update();
cs

[C#] DataGridViewComboBoxCell : Get Selected Index, Set Index C#

1
2
3
4
5
6
7
8
9
10
11
12
13
// DatagridViewCombobox Value Change
 
DataGridViewComboBoxCell cbx;
 
cbx = (DataGridViewComboBoxCell)dgvScript.Rows[idx - 1].Cells[3];
dgvScript.Rows[idx - 1].Cells[3].Value = cbx.Items[int.Parse(lst[idx][3])];
 
 
// Get Selected index
 
DataGridViewComboBoxCell cbxV = (DataGridViewComboBoxCell) dgvScript.Rows[col].Cells[3];
int value = cbxV.Items.IndexOf(cbxV.Value);
 
cs

[C#] Convert bool to int C#

1
2
3
4
5
// bool to string
string text = Convert.ToInt16(bool value).ToString();
 
// bool to int
int val = Convert.ToInt16(bool value);
cs

[C#] Convert C# float[] to C++ float* C#

1
2
3
4
5
6
7
8
9
10
11
// C#
 
unsafe
{
    fixed (float* ptr_f = f) //or equivalently "... = &f[0]" address of f[0]
    fixed (float* ptr_f2 = f2) //or equivalently "... = &f2[0]" address of f2[0]
    {
        // to C++ Functions // sending float* variable
        function( ptr_f, ptr_f2 );
    }
}
cs

[C#] Convert C++ String^ to C# string C#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// .h
String^ GetLastError(short nError);
 
// cpp
String^ PMA12Net::GetLastError(short nError)
{    
    ...
}
 
 
// 최종적으로 C# 에서 호출
public string GetLastError()
{
    return gPMA.GetLastError(m_ErrorCode);
}
cs

C# CLR string to C++ LPCTSTR 전달방법 C#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// C++ Lib Defined
short PASCAL LoadCalibrationData(LPCTSTR pWaveName, LPCTSTR pSensName);
 
// CLR에서 lib Masking
// .h
using namespace System::Runtime::InteropServices;
#include <msclr/marshal.h>
 
short PMA_GetCalibrationData(System::String^ WaveName, System::String^ SensName);
 
// .Cpp    
short PMA12Net::PMA_GetCalibrationData(System::String^ WaveName, System::String^ SensName)
{    
    IntPtr wptr = System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(WaveName);
    LPCTSTR Wav = reinterpret_cast<LPCTSTR>(wptr.ToPointer());
 
    IntPtr sptr = System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(SensName);
    LPCTSTR Sens = reinterpret_cast<LPCTSTR>(sptr.ToPointer());
 
    // C# string to C++ LPCTSTR
    short ret = LoadCalibrationData(Wav, Sens);
 
    Marshal::FreeHGlobal(wptr);
    Marshal::FreeHGlobal(sptr);
 
    return ret;
}
 
// 최종적으로 C# 에서 호출
public short LoadCalibrationData(PMA_CalculationsFiles files)
{
    short result = -1;
    
    try
    {                
        result = gPMA.PMA_GetCalibrationData(files.WaveFilePath, files.SensFilePath);
    }
    catch (Exception e)
    {
        MessageBox.Show(e.ToString());
    }
 
    return result;
}
cs

[C#] 파일경로에서 확장자, 파일명, 경로 추출하는 함수와 예제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
파일의 전체 경로를 가져왔을 때 파일명, 확장자, 경로, 디렉토리등을 따로 분리해서 사용하고 싶을 때가 있습니다.
 
 
 
▼ 저도 파일을 다루기 위해 파일명을 따로 분리해야 되고 확장자가 무엇이냐에 따라 별로 처리를 해야 됩니다. 일일이 문자를 쪼개서 구분하는 것이 아니라 Path 클래스로 간단하게 추출이 가능합니다.
 
 
 
1. 파일명을 추출하고 싶을 때
 
 
 
1
2
3
// 파일 명을 추출합니다. 
string filepath = @"D:\다운로드\POP\Survive You.mp3";
Console.WriteLine(Path.GetFileName(filepath));
1
결과 : “Survive You.mp3”
 
 
2. 파일의 확장자를 가져오고 싶을 때
 
 
1
2
3
// . 을 포함한 확장자를 가져오고 싶을때 
string filepath = @"D:\다운로드\POP\Survive You.mp3";
Console.WriteLine(Path.GetExtension(filepath));
1
결과 : “.mp3”
 
 
3. 파일의 확장자를 제외한 파일명을 가져오고 싶을 때
 
 
1
2
3
// 확장자가 없는 파일명을 가져오고 싶을때 
string filepath = @"D:\다운로드\POP\Survive You.mp3";
Console.WriteLine(Path.GetFileNameWithoutExtension(filepath));
1
결과 : “Survive You”
 
 
4. 파일을 제외한 경로명만 가져오고 싶을때
 
 
1
2
3
// 파일을 제외한 경로명만 가져올때 
string filepath = @"D:\다운로드\POP\Survive You.mp3";
Console.WriteLine(Path.GetDirectoryName(filepath));
1
결과 : “D:\다운로드\POP”
 
 
5. 파일과 경로를 합치고 싶을 때
 
 
 
▼ 파일과 경로를 분리해 놓고 다시 합치고 싶을 때 Path.Combine() 함수를 사용하시면 됩니다. 문자열을 합쳐도 되겠지만 Combine 을 사용하면 합칠 때 경로의 구분자인 역슬레쉬를 안넣어도 자동으로 알아서 추가해 줍니다.
 
 
 
1
2
3
4
// 파일을 제외한 경로명만 가져올때 
string filepath = @"D:\다운로드\POP\Survive You.mp3";
Console.WriteLine(Path.Combine("D:\\다운로드\\POP""Survive You.mp3"));
Console.WriteLine(Path.Combine("D:\\다운로드\\POP\\""Survive You.mp3"));
1
2
결과 : “D:\다운로드\POP\Survive You.mp3”
      “D:\다운로드\POP\Survive You.mp3”
 
 
출처: https://mainia.tistory.com/2349 [녹두장군 - 상상을 현실로]
cs

C++ CLI System.String^ to MFC LPCTSTR C#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <msclr\marshal.h>
 
using namespace System;
using namespace msclr::interop;
 
...
 
String^ cliString;
marshal_context context;
 
LPCTSTR cstr = context.marshal_as<const TCHAR*>(cliString);
 
// example
    short PMA12Net::PMA_GetCalibrationData(System::String^ WaveName, System::String^ SensName)
    {
        marshal_context context;
        LPCTSTR wav = context.marshal_as<const TCHAR*>(WaveName);
        LPCTSTR sens = context.marshal_as<const TCHAR*>(SensName);
 
        return LoadCalibrationData(wav, sens);
    }
cs

[C#] Opencv3 이미지 저장, 이미지 타입 변경 방법 C# OpenCV

// JPG 의 경우
ImageEncodingParam EncJpeg = new ImageEncodingParam(ImwriteFlags.JpegQuality, 100); // Default 95
Cv2.ImWrite(SaveFileDialog.FileName, "Mat형식 이미지데이터", EncJpeg);

// PNG 의 경우
ImageEncodingParam EncPng = new ImageEncodingParam(ImwriteFlags.PngCompression, 1); // Default 3
Cv2.ImWrite(SaveFileDialog.FileName, "Mat형식 이미지데이터", EncPng);

// BMP 의 경우
Cv2.ImWrite(SaveFileDialog.FileName, "Mat형식 이미지데이터");


1 2 3 4



통계 위젯 (화이트)

02
13
3101

메모장

이 이글루를 링크한 사람 (화이트)

1