Microsoft MVP성태의 닷넷 이야기
.NET Framework: 707. OpenCV 응용 프로그램을 C#으로 구현 - OpenCvSharp [링크 복사], [링크+제목 복사],
조회: 37349
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
(연관된 글이 1개 있습니다.)
(시리즈 글이 10개 있습니다.)
.NET Framework: 707. OpenCV 응용 프로그램을 C#으로 구현 - OpenCvSharp
; https://www.sysnet.pe.kr/2/0/11402

.NET Framework: 708. C# - OpenCvSharp을 이용한 동영상(avi, mp4, ...) 처리
; https://www.sysnet.pe.kr/2/0/11403

.NET Framework: 709. C# - OpenCvSharp을 이용한 동영상(avi, mp4, ...) 처리 + Direct2D
; https://www.sysnet.pe.kr/2/0/11404

.NET Framework: 710. C# - OpenCvSharp을 이용한 Webcam 영상 처리 + Direct2D
; https://www.sysnet.pe.kr/2/0/11405

.NET Framework: 711. C# - OpenCvSharp의 Mat 데이터 조작 방법
; https://www.sysnet.pe.kr/2/0/11406

.NET Framework: 723. C# - OpenCvSharp 사용 시 C/C++을 이용한 속도 향상 (for 루프 연산)
; https://www.sysnet.pe.kr/2/0/11422

VC++: 123. 내가 만든 코드보다 OpenCV의 속도가 월등히 빠른 이유
; https://www.sysnet.pe.kr/2/0/11423

.NET Framework: 781. C# - OpenCvSharp 사용 시 포인터를 이용한 속도 향상
; https://www.sysnet.pe.kr/2/0/11567

개발 환경 구성: 447. Visual Studio Code에서 OpenCvSharp 개발 환경 구성
; https://www.sysnet.pe.kr/2/0/11971

Graphics: 38. C# - OpenCvSharp.VideoWriter에 BMP 파일을 1초씩 출력하는 예제
; https://www.sysnet.pe.kr/2/0/12485




OpenCV 응용 프로그램을 C#으로 구현 - OpenCvSharp

많은 분들이 알고 계시겠지만, ^^ C#을 위한 OpenCVSharp 라이브러리가 github/Nuget을 통해 배포중이므로,

shimat/opencvsharp 
; https://github.com/shimat/opencvsharp

OpenCvSharp3-AnyCPU
; https://www.nuget.org/packages/OpenCvSharp3-AnyCPU/

Visual Studio에서 다음과 같이 간단하게 참조 추가를 할 수 있습니다.

Install-Package OpenCvSharp3-AnyCPU -Version 3.3.1.20171117 

그 이후로는 C# 구문의 편리함을 누리며 코딩하시면 됩니다.

using OpenCvSharp;

class Program 
{
    static void Main() 
    {
        Mat src = new Mat("lenna.png", ImreadModes.GrayScale); // ver 3 방식
        // Mat src = Cv2.ImRead("lenna.png", ImreadModes.GrayScale); // ver 2 방식
        Mat dst = new Mat();
        
        Cv2.Canny(src, dst, 50, 200);
        using (new Window("src image", src)) 
        using (new Window("dst image", dst)) 
        {
            Cv2.WaitKey();
        }
    }
}

Windows Forms로 작업하는 경우 OpenCvSharp.Window를 별도로 띄우지 않고 Form 내에 이미지 출력을 하고 싶을텐데요. 이를 위해,

[Cpp] Converting Image
; https://github.com/shimat/opencvsharp/wiki/%5BCpp%5D-Converting-Image

다음과 같이 Mat으로부터 Bitmap을 출력해 사용하면 됩니다.

Mat mat = new Mat("foobar.jpg", ImreadModes.Color);
Bitmap bitmap = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(mat);

첨부 파일은 이미지를 gray scale로 로딩한 후 Canny 처리한 이미지를 각각의 PictureBox에 출력하는 예제입니다.

using OpenCvSharp;
using System;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            using (Mat src = new Mat("portal_start.png", ImreadModes.GrayScale))
            using (Mat dst = src.Canny(50, 200))
            {
                this.pictureBox1.Image = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(src);
                this.pictureBox2.Image = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(dst);
            }
        }
    }
}

그래서 이렇게 실행됩니다. ^^

opencv_sharp_1_1.png




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 1/23/2022]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 



2019-07-03 05시24분
[MJLee] 안녕하세요. 프로그래밍 + open CV를 공부를 막 시작한 사람입니다. VS code에 openCV를 설치하려고 하는데, 어려움을 겪고 있어서요, NuGet Package Manager Extension을 설치했습니다. NuGet Package Manager : Add Package 로 OpenCvSharp-AnyCPU (>= 2.4.10.20170306) 추가하니 "Success! Wrote OpenCvSharp-AnyCPU@2.4.10.20170306 to d:\CVCODE\HelloVSCode\HelloVSCode.csproj. Run dotnet restore to update your project." 라고 팝업창이 뜹니다.
PS D:\CVCODE\HelloVSCode> dotnet restore 을 실행하면 아래와 같이 나와서 설치를 못 하고 있는데, 도움 주실 수 있으신지요? 감사합니다.
D:\CVCODE\HelloVSCode\HelloVSCode.csproj : error NU1100: '.NETCoreApp,Version=v2.2'에 대해 'OpenCvSharp-AnyCPU (>= 2.4.10.20170306)'을(를) 확인할 수 없습니다.
  285.04 ms에서 D:\CVCODE\HelloVSCode\HelloVSCode.csproj에 대한 복원에 실패했습니다.
[guest]
2019-07-03 10시32분
다음의 글을 참고하세요.

Visual Studio Code에서 OpenCvSharp 개발 환경 구성
; http://www.sysnet.pe.kr/2/0/11971
정성태

... 166  167  168  169  170  171  172  173  174  175  176  [177]  178  179  180  ...
NoWriterDateCnt.TitleFile(s)
569정성태3/16/200824133Team Foundation Server: 24. TFS 2008로 마이그레이션 (2) [2]
566정성태2/28/200825277.NET Framework: 99. AppDomain.GetEntryAssembly()를 우회하는 방법파일 다운로드1
564정성태2/16/200824833Windows: 30. TS Web Access + Vista SP1 [2]
563정성태2/16/200824265오류 유형: 51. Vista(UAC) + 웹 프로젝트 디버깅: System.UnauthorizedAccessException
562정성태2/12/200828617Windows: 29. Windows Server 2008 설치 [4]
561정성태1/10/200822329오류 유형: 50. IE 7 + 잘못된 HTC 파일 경로 = File not found [5]
559정성태1/1/200827220Windows: 28. Vista에서 끌어다 놓기로 GAC 등록하는 방법 [2]
558정성태1/1/200844408개발 환경 구성: 33. 32bit/64bit OLE DB Provider [1]
557정성태12/22/200722802개발 환경 구성: 32. WSCF와 VS.NET 2008
556정성태12/16/200720979기타: 22. 인기 순위 정리 : 조회수 1000 회 이상
555정성태12/16/200723735기타: 21. 인기 순위 정리 : 조회수 500 ~ 999회 글 목록
554정성태12/16/200728321기타: 20. 인기 순위 정리 : 조회수 250 ~ 499회 글 목록
553정성태12/16/200728637기타: 19. 인기 순위 정리 : 조회수 100 ~ 249회 글 목록
552정성태12/16/200722230기타: 18. 인기 순위 정리 : 조회수 000 ~ 099 회 글 목록
550정성태12/16/200721258Team Foundation Server: 23. TFS 2005에서 TFS 2008로 마이그레이션 [2]
549정성태12/16/200722674Team Foundation Server: 22. TFS 설정 - 주소를 도메인으로 변경
548정성태12/15/200740312오류 유형: 49. Report Server - 원격 서버에 연결할 수 없습니다
547정성태12/4/200728736.NET Framework: 98. .NET 비동기 Socket과 스레드
546정성태12/4/200719836Team Foundation Server: 21. Microsoft Office가 참조된 경우의 빌드 환경 구성
545정성태12/4/200726548Windows: 27. 눈으로 확인해 보는 ASLR 기능 [1]
544정성태11/25/200722476오류 유형: 48. VS.NET 2008 설치 오류 - Error code 1602 [5]
543정성태11/25/200725393개발 환경 구성: 31. ROBOCOPY XP026 버전 [1]
542정성태11/3/200740480VS.NET IDE: 55. XML/XSLT로 구현하는 매크로 확장 [5]파일 다운로드2
538정성태10/11/200726923스크립트: 10. VBScript - "Sub를 호출할 때는 괄호를 사용할 수 없습니다." [2]
537정성태9/28/200735580개발 환경 구성: 30. 64비트 OS에서의 ChartFX 라이선스 문제
536정성태9/12/200732374.NET Framework: 97. WCF : netTcpBinding에서의 각종 Timeout 값 설명 [11]
... 166  167  168  169  170  171  172  173  174  175  176  [177]  178  179  180  ...