본문 바로가기

C#7

[C#] 실행시간 측정 Stopwatch C#에서 실행시간은 Stopwatch로 간단하게 측정할수 있습니다. System.Diagnotics에 있으며 사용법도 간단합니다. Start() : Stopwatch 시작. Stop() : Stopwatch 중지. Restart() : Stopwatch 재시작. ElapsedMilliseconds : Stopwatch가 실행된 이후 경과된 시간은 밀리세컨드 단위로 반환. [예제] using System; using System.Diagnotics; namespace ConsoleApp3 { class Program { static void Main(string[] args) { Stopwatch watch = new Stopwatch(); //stopwatch 시작 watch.Start(); for(in.. 2018. 8. 13.
[C#] HSV에서 Hue 의 거리 HSV 색공간에서 Hue는 0 과 360이 연결되어있는 원형 형태이다. [ cylinder 모양의 HSV색공간] H 1= 5 와 H 2= 355 는 비슷한 색상을 의미하지만 Abs(H1 - H2) = 350 으로 거리 차이가 매우 크다. 하지만 원형 형태이기때문에 이런 경우 두 H 사이의 거리는 10 이라고 봐야 될것이다. 한번 제대로된 거리를 구해보자. 반시계 방향의 거리는 350 이고 시계방향의 거리는 10 일 것이다. ( 거리는 각도의 차이이다. ) 우리는 두개의 거리중 짧은 거리가 우리가 원하는 거리라는 것을 안다. 따라서, 반시계 방향의 거리가 180 이상일 경우만 시계방향의 거리를 채택해주면 된다. int H1 = 100; int distance = Math.Abs(H1-H2); distanc.. 2018. 7. 9.
[C#] 이미지를 오로지 R , G , B 만으로 표현하기 (색 분류) R , G , B는 각각 빨강 , 초록 , 파랑 이다. ( 빛의 삼원색 ) B를 X축 G를 Y축 R 을 Z축 으로 정하자 -> (B , G , R ) = (X , Y , Z) B의 좌표는 (255,0,0) G의 좌표는 (0,255,0) R의 좌표는 (0,0,255) 라 하자. [색 좌표] 우리는 우리가 얻은 색깔을 "어떤 색상에 가까운가" 를 기준으로 분류를 할수 있을것이다. [제대로된 처리를 못하는 중간값이 생길수는 있다. EX) 검은색(0,0,0)]. 어떤 색상에 가까운지는 Color와 R,G,B간의 "거리" 를 비교하여 알수 있을것이다. 거리는 두점사이의 거리 공식을 사용하면 되겠다. distance = sqrt { (x1-x2)^2 + (y1-y2)^2 + (z1-z2)^2 } [DllImport.. 2017. 12. 28.
[C#] 픽셀서치 PixelSearch 2 원래 PixelSearch 주소 : http://jogamja.tistory.com/104 PixelSearch를 좀더 빠르게 할수는 없을까? GetPixel 보다 더 빠른 방법이없을까 ? BitBlt 로 캡쳐한 화면의 데이터에 바로 접근하는 방법이 있지않을까 ? 그 해결의 실마리는 gdi+ LockBits 이다. C# 에서는 Bitmap.LockBits 로 사용할수있으며 LockBits는 RGB bit 들을 묶어(Lock)놓는것이다. 다시말해서, 비트맵에 내가 지정한 직사각형 부분을 잠궈놓고 내가 마음대로 사용할수 있게해주는 함수이다. LockBits에 대한 내용은 https://msdn.microsoft.com/ko-kr/library/5ey6h79d(v=vs.110).aspx 여기에 더 자세히 나와.. 2017. 9. 16.