분류 전체보기  84

2019. 12. 3.

C#/C# OpenCV2019. 12. 3.

C# OpenCV 6-3. 모폴로지 연산 - 침식, 팽창

대표함수 Cv2.GetStructuringElement 구조체 정의 Cv2.Erode 침식함수, 바이너리 이미지에서 흰색 오브젝트 외각을 검은색으로 변경 이진화 이미지에서 작은 흰색노이즈를 제거하거나, 합쳐진 오브젝트를 분리하는데 사용가능 Cv2.Dilate 팽창함수, 바이너리 이미지에서 흰색 오브젝트 주변에 흰색을 추가 이진화 이미지에서 침식으로 줄어든 오브젝트를 원복하거나, 인접한 오브젝트를 하나로 만드는데 사용가능 Example Code using System; using System.Windows.Forms; using OpenCvSharp; namespace morphol1 { public partial class Form1 : Form { public Form1() { InitializeCom..

2019. 11. 22.

C#/C# OpenCV2019. 11. 22.

C# OpenCV 6-2. BitWise 추가 설명

연산자 종류 종류 의미 부호 설명 And 논리 곱 & 조건들이 모두 참 일경우 참 Or 논리 합 | 조건중 1개만 참이어도 참 Xor 비교 ^ 조건이 서로 다를 경우 참 Not 부정 ~ 참은 거짓으로 거짓은 참으로 BitWise 2진연산 일반적으로 통용되는 색상코드는 RGB 16진수 형태로 표현된다. 하지만 C# 코드에서 색상값을 나타내는 Scalar 값은 10진수. 연산은 2진수로 진행된다. 이에 검증차원 간단하게 알아보려고 한다. ex) 보라색의 경우 800080 R : 80 , G : 00 , B : 80 16진수의 값을 가지고있다. 10진수로 바꿔보면 R : 128 , G : 0 , B : 128 2진수로 바꿔보면 R : 10000000 , G : 00000000 , B : 10000000 사용한..

2019. 11. 21.

C#/C# OpenCV2019. 11. 21.

C# OpenCV 6-1. BitWise 연산

대표함수 Cv2.BitwiseAnd 두 이미지를 And 연산 Cv2.BitwiseOr 두 이미지를 Or 연산 Cv2.BitwiseXor 두 이미지를 Xor 연산 Cv2.BitwiseNot 이미지를 Not 연산 Example Code using System; using System.Windows.Forms; using OpenCvSharp; namespace bitWiseTest { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { Mat src = Cv2.ImRead("image.jpg"); Mat mask = new M..

2019. 11. 20.

C#/C# OpenCV2019. 11. 20.

C# OpenCV 5-3. 색상 추출

대표함수 Cv2.InRage 사용자 지정 Scalar범위 픽셀을 추출 Cv2.CvtColor 이전 강의 참조([프로그래밍/C# OpenCV] - C# OpenCV 5-1. 색공간 변환) Cv2.Split 이전 강의 참조([프로그래밍/C# OpenCV] - C# OpenCV 5-2. 채널 분리 & 병합) Example Code using System; using System.Windows.Forms; using OpenCvSharp; namespace hueExtract { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) {..

2019. 11. 19.

C#/C# OpenCV2019. 11. 19.

C# OpenCV 5-2. 채널 분리 & 병합

대표함수 Cv2.Split 이미지의 각채널을 분리 Cv2.Merge 분리되어있는 채널을 하나로 병합 Example Code using System; using System.Windows.Forms; using OpenCvSharp; namespace SMtest { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { Mat src = Cv2.ImRead("image.jpg"); Mat dst = new Mat(); Mat[] mv = new Mat[3]; Cv2.Split(src, out mv); //mv = Cv2.Spl..