c# Winform 개발
-
한글 일치율 비교#3. LevenshteinDistancec# Winform 개발/글자비교 2021. 6. 22. 16:24
Levenshtein Distance는 두 개의 문자열 A, B가 주어졌을 때 두 문자열이 얼마나 유사한 지를 알아낼 수 있는 알고리즘입니다 Compute 함수에서는 같으면 0, 다르면 distance를 리턴하기 때문에, 일치율은 이렇게 계산되겠네요. 일치율 = ( 문자열의 길이 - distance ) / 문자열의 길이 * 100 static class LevenshteinDistance { /// /// Compute the distance between two strings. /// public static int Compute(string s, string t) { int n = s.Length; int m = t.Length; int[,] d = new int[n + 1, m + 1]; // St..
-
한글 일치율 비교#2. 한글분리 (초성,중성,종성)c# Winform 개발/글자비교 2021. 6. 22. 16:19
한글 비교할때 완성된 한글자씩 비교하면 아무래도 일치율이 디테일해 지지 않아서 ( "노원구 중계동"을 검색하면 "노원구 중계동" 과 "노원구 상계동" 은 같은 일치율을 보임) 초성,중성,종성으로 분리시켰습니다. divideString("파덜") -> "ㅍㅏ ㄷㅓㄹ" public static string chosung = "ㄱㄲㄴㄷㄸㄹㅁㅂㅃㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎ"; public static string jungsung = "ㅏㅐㅑㅒㅓㅔㅕㅖㅗㅘㅙㅚㅛㅜㅝㅞㅟㅠㅡㅢㅣ"; public static string jongsung = " ㄱㄲㄳㄴㄵㄶㄷㄹㄺㄻㄼㄽㄾㄿㅀㅁㅂㅄㅅㅆㅇㅈㅊㅋㅌㅍㅎ"; // 받침이 없을 수 있으므로 제일 첫부분은 띄워줘야 합니다. public static ushort UnicodeHangeulBase..
-
한글 일치율 비교#1. 전국 읍면동 데이터 Map에 담기c# Winform 개발/글자비교 2021. 6. 22. 16:11
읍면동 데이터를 구글검색으로 받습니다. 보통 이런식으로 데이터가 있기 때문에 구분자로 파싱해서 map 또는 dictionary에 담습니다. 하고자 하는건 입력한 텍스트가 시군구 읍면동의 이름과 몇퍼센트 일치하는지 체크하는 로직입니다. 테스트용이라 UI는 이렇게 구성했음. StreamReader 읽을때 Encoding.Default 사용해줘야 한글이 깨지지 않습니다~ Dictionary items = new Dictionary(); private void button1_Click(object sender, EventArgs e) { int fileCounter = 0; int counter = 0; string line; System.IO.StreamReader file = new System.IO.Str..
-
picturebox에 휠이벤트로 확대,축소하기( With openCV )c# Winform 개발/UI 2021. 6. 22. 09:13
// 폼디자인 1. 패널은 docking // 2. 그안에 picturebox는 dock을 none으로 생성 ( 확대,축소시 스크롤바가 자동으로 생성된다 ) // 전역변수로 zoom 비율 생성 private double ZOOM_FACTOR = 1.2; private double NOW_FACOTR = 1; // 리사이즈 static OpenCvSharp.Size resize = new OpenCvSharp.Size(); // 휠이벤트를 생성합니다 private void pic_MouseWheel(object sender, MouseEventArgs e) { if (e.Delta > 0) { ZoomIn(); } else { ZoomOut(); } } // 확대, 축소 함수 private void Zoo..
-
앵커찾기 (With OpenCV)c# Winform 개발/UI 2021. 6. 21. 09:31
마우스로 클릭할때 OpenCV로 그린오브젝트(네모,폴리곤)에 포함되는지 확인하고할 때 썼었다. OpenCVOjbect = 그려진 오브젝트(네모,폴리곤). 각 꼭지점은 앵커라고 부르며 앵커의 경우 BLK로 조금 더 진하게 보이도록 UI에서 변경한 다음 마우스 클릭 이벤트에서 아래 함수를 호출하도록 해서 사용함. ex) TL = Top Left TM = Top Middle TR = Top Right BL = Bottom Left ... public class Constant { public const int ANCHOR_LOC_TL = 1; public const int ANCHOR_LOC_TM = 2; public const int ANCHOR_LOC_TR = 3; public const int ANCHO..
-
TreeView 전체경로(Full Path)로 찾아서 트리뷰에 표시하기c# Winform 개발/UI 2021. 6. 15. 16:11
private TreeNode FindNode(TreeNode node, List path) { path.RemoveAt(0); if (path.Count == 0) return node; node.Expand(); foreach (TreeNode mynode in node.Nodes) if (mynode.Text == path[0]) { return FindNode(mynode, path); //recursive call } return node; } // gFilePath에 전체경로를 넣어주면 동작함 private void btn_Load_Click(object sender, EventArgs e) { var path_list = gFilePath.Split('\\').ToList(); foreach..
-