opencvSharp

C#/OpenCVSharp4

C# - OpenCVSharp4 - Image Thresholding

Introduction Thresholding은 이미지를 이진화 하는 방법이다. 이진화 이미지란, 흑백으로 표현되는 이미지를 뜻한다. 이진화 알고리즘에서는 임계값을 기준으로 픽셀 값을 흑, 백으로 변환한다. Thresholding을 진행하기 위해서는 주로 다음과 같은 절차를 거친다. 이미지를 Gray scale로 전환 (선택사항. 컬러 이미지를 활용하는 것이 더 유리할 수도 있다.) Thresholding 진행 Global thresholding private static void Main(string[] args) { Mat original = new("TestImage.jpg"); Mat grayScale = new(); Mat threshold = new(); // Gray scale로 변경 Cv2..

C#/OpenCVSharp4

C# - OpenCVSharp4 - Image Filtering

C# - OpenCVSharp4 - Image Filtering Introduction OpenCV에서 제공하는 filter를 이용해 필터 또는 샤프닝 효과를 얻을 수 있다. Filter2D(), BoxFilter() 등 여러 method를 상황에 따라 사용한다. 수행 결과와 예시 코드는 아래 참조 수행 결과 확인 Original Filter2D BoxFilter GaussianBlur MedianBlur BilateralFilter Code using OpenCvSharp; using System; using System.Windows.Forms; namespace ImageFilter { public partial class Form1 : Form { private enum FilterType { F..

C#/OpenCVSharp4

C# - OpenCVSharp4 - Text rendering (ex : FPS write)

Introduction Cv2.PutText()를 이용해 이미지 또는 비디오에 글자를 출력한다. 좌측 상단 또는 좌측 하단을 원점으로 하여 원하는 위치에 글자를 출력한다. 폰트, 크기 등을 취향에 맞게 선택할 수 있다. 아래 예제는 C# - OpenCVSharp4 - Video Load / Save의 비디오 출력 코드를 활용한다. Code using OpenCvSharp; using System; using System.Collections.Generic; using System.Threading; using System.Windows.Forms; namespace TextingOnFrame { /// /// FPS를 계산할 클래스 /// public class FPS { private List Coun..

C#/OpenCVSharp4

C# - OpenCVSharp4 - Webcam Control

Introduction OpenCVSharp4을 이용해 Webcam 영상을 재생한다. Video 재생과 마찬가지로 프레임 단위로 로드, 갱신한다. 카메라에는 많은 프로퍼티가 있다. 값을 조절하여 화면에 변화를 줄 수 있다. 카메라에 따라 지원하는 파라미터가 다르다. 사용 중인 카메라의 특징을 확인해야한다. Code using OpenCvSharp; using System; using System.Collections.Generic; using System.Management; using System.Threading; using System.Windows.Forms; namespace UsingWebcam { public partial class Form1 : Form { private VideoCapt..

C#/OpenCVSharp4

C# - OpenCVSharp4 - Video Load / Save

Introduction OpenCVSharp4을 이용해 video를 불러오고 저장한다. Video 재생 시 프레임 단위로 로드하여 화면에 갱신한다. Video를 파일로 내보낼 시 역시 프레임 단위로 읽고 파일에 쓴다. OpenCvSharp.Extensions.BitmapConverter.ToBitmap 사용 시 Bitmap 변환 과정에서 메모리 누수가 발생할 수 있다. GC 호출이 필요하다. Video의 마지막 프레임 판단을 위해 PosFrames를 카운팅 하는 대신 읽은 프레임이 비었는지 확인하는게 성능상 좋다. 프레임을 UI에 뿌리는 과정은 UI 쓰레드를 바쁘게한다. 가능하면 읽어오는 로직은 별도 쓰레드로 구현한다. Code using System; using System.Threading; usin..

Peponi_
'opencvSharp' 태그의 글 목록