반응형
C# OpenCV를 이용해서 RTSP 영상을 출력해보자!
오늘은 OpenCV를 이용해서 RTSP 영상을 화면에 출력해보도록 하겠습니다.
오늘의 기본 폼입니다.
picturebox와 button을 하나씩 추가해 주시길 바랍니다.
1. 공공데이터포털(RTSP Sample 주소 가져오기)
공공데이터 포털
국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase
www.data.go.kr
위 주소로 들어가서 CCTV라고 검색해주시면 아래와 같이 결과가 나올겁니다.
충청남도 천안시_교통정보 CCTV를 클릭하시고 스크롤을 조금 내려보시면
우측 사진과 같이 RTSP 주소를 찾을 수 있습니다.
2. OpenCV 추가하기
도구 -> NuGet 패키지 관리자 -> 솔루션용 NuGet 패키지 관리로 들어가셔서 위 3개를 설치해주시면 됩니다.
3. OpenCV namespace 가져오기
using OpenCvSharp;
4. 영상 출력하기
string rtspUrl = "rtsp://210.99.70.120:1935/live/cctv001.stream";
VideoCapture video;
RTSP 주소를 문자열에 넣어주고 VideoCapture 변수를 선언해줍니다.
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
이미지를 어떻게 표시할건지 나타내는 부분입니다.
video = new VideoCapture(rtspUrl);
VideoCapture 변수를 이용해 RTSP의 영상 정보를 가져오는 부분입니다.
using (Mat image = new Mat())
Mat 변수를 사용해서 영상을 저장하는 부분입니다.
Bitmap bmp = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(image);
pictureBox1.Image = bmp;
RTSP 영상을 PictureBox에 출력하는 부분입니다.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using OpenCvSharp;
namespace OpenCV_MergeTest
{
public partial class Form1 : Form
{
string rtspUrl = "rtsp://210.99.70.120:1935/live/cctv001.stream";
VideoCapture video;
public Form1()
{
InitializeComponent();
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
}
private void StartButton_Click(object sender, EventArgs e)
{
video = new VideoCapture(rtspUrl);
using (Mat image = new Mat())
{
while (true)
{
if (!video.Read(image))
{
Cv2.WaitKey();
}
if (!image.Empty())
{
Bitmap bmp = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(image);
pictureBox1.Image = bmp;
}
if(Cv2.WaitKey(1) >= 0)
{
break;
}
}
}
}
}
}
전체 코드입니다.
5. 끝으로....
생각보다 영상을 출력하는법은 간단했다.
근데 OpenCV로 할 수 있는게 무긍무진한듯하다.
하나씩 해보면서 정리하려면 시간이 조금 걸릴듯 하다.
열심히 해보자!!!
반응형
'C# Windows Forms' 카테고리의 다른 글
C# OpenCvSharp를 사용해서 두 영상 Stitching하기! (2) | 2024.11.12 |
---|---|
C# OpenCvSharp를 사용해서 두 영상의 특징점 추출과 동일한 부분을 찾아보자! (4) | 2024.11.11 |
C# MySql을 사용해서 DB 프로시저를 호출해보자! (6) | 2024.10.29 |
C# Windows Forms DB 연동 후 데이터 삽입 및 조회 (6) | 2024.10.23 |
C# Windows Forms SerialPort ReceiveData 시리얼 통신 데이터 받기 (10) | 2024.10.22 |