IT정보공유/C#85 C# EmguCV IP카메라 여러개 연결 문제 해결 지난번에 EmguCV 최신버전인 v4.1.1.3497버전에 멀티쓰레딩 버그가 있는거 같다고 포스팅을 했었습니다. 사실 이게 Wrapper 라이브러리인 Emgu.CV의 문제인지, OpenCV의 문제인지 그것도 아니면 ffmpeg의 문제인지 잘 모르겠습니다. [IT정보공유/C#] - C# EmguCV 최신버전 v4.1.1.3497 멀티쓰레딩 버그 있는것 같네요. C# EmguCV 최신버전 v4.1.1.3497 멀티쓰레딩 버그 있는것 같네요. IP카메라 영상을 화면에 표출하기 위해 크로스플랫폼 라이브러리인 Emgu CV를 사용해 보고 있습니다. 다행이 일전에 일본인 개발자가 만들었다는 OpenCVSharp을 다뤄봐서 비교적 쉽게 EmguCV도 사용할 수 있었습니.. bigenergy.tistory.com 왜냐.. IT정보공유/C# 2019. 10. 16. C# EmguCV 최신버전 v4.1.1.3497 멀티쓰레딩 버그 있는것 같네요. IP카메라 영상을 화면에 표출하기 위해 크로스플랫폼 라이브러리인 Emgu CV를 사용해 보고 있습니다. 다행이 일전에 일본인 개발자가 만들었다는 OpenCVSharp을 다뤄봐서 비교적 쉽게 EmguCV도 사용할 수 있었습니다. OpenCVSharp을 이용해서 RTSP stream을 받는 부분에는 문제가 없었습니다만, IP Camera를 여러개 붙일려고 하니까 문제가 생겼습니다. 지금 현재 테스트 하는게 VMS 나 CMS 같이 여러개의 CCTV를 볼수 있는 프로그램을 만들고 있거든요. 이런 프로그램이요. 어떤 문제냐면 카메라가 여러대이기 때문에 쓰레드로 여러대의 카메라의 영상을 가져오게 만들었는데 카메라가 하나 접속되고, 그 후에 다시 또 하나 접속되고 순차적으로 연결되는 문제가 발생했습니다. 한참을 이것.. IT정보공유/C# 2019. 10. 11. c# Http 웹서버와 데이터 통신하는 클래스 WebClient - (RESTFul Client) 요즘 웹서버 구축시에는 대부분 RESTFul API Server 형태로 구축을 많이 하는것 같습니다. RESTFul로 요청하면, JSON 으로 응답하는 형태로 말이죠. 그래서 범용적으로 많이 사용되는 JSON 방식의 REST API를 호출하는 경우를 예로 설명하도록 하겠습니다. 웹서버로 부터 데이터를 보내기 위한 메소드 UploadString() 4개의 오버로드된 함수가 있으며, 별도의 메소드를 지정하지 않으면 기본 POST 방식으로 업로드가 됩니다. - public string UploadString (string address, string data) - public string UploadString (Uri address, string data) - public string UploadString.. IT정보공유/C# 2019. 9. 17. C# OpenCVSharp 영상 및 이미지 표출시 사용하는 컨트롤 PictureBoxIpl 일전에 C# OpenCVSharp을 이용하여 RTSP 영상을 PictureBox에 표출하는 코드를 작성해 봤습니다. [IT정보공유/C#] - C# OpenCV RTSP 네트워크 IP 카메라 영상 연결 C# OpenCV RTSP 네트워크 IP 카메라 영상 연결 예전에 MP4, AVI 등의 영상 파일을 재생 시키는 방법을 알아봤었는데요. 이번엔 RTSP 프로토콜을 이용하는 IP 카메라의 영상을 재생 시키는 방법에 대해서 알아보도록 하겠습니다. 예전과 동일하게 오픈소스인 Ope.. bigenergy.tistory.com PictureBox.Image에는 Bitmap Type 밖에 할당이 되지 않기 때문에 OpenCVSharp에서 사용하는 Mat 타입을 비트맵으로 변환하여 PictureBox.Image 속성에 .. IT정보공유/C# 2019. 9. 16. C# OpenCV RTSP 네트워크 IP 카메라 영상 연결 예전에 MP4, AVI 등의 영상 파일을 재생 시키는 방법을 알아봤었는데요. 이번엔 RTSP 프로토콜을 이용하는 IP 카메라의 영상을 재생 시키는 방법에 대해서 알아보도록 하겠습니다. 예전과 동일하게 오픈소스인 OpenCVSharp 을 이용할건데, 이번에 보니 OpenCVSharp4로 버전이 업그레이드 되었습니다. (실제 OpenCVSharp4 버전 v4.1.0.20190416) NuGet을 통해 설치할수 있고, NuGet을 통해 설치할 때는 OpenCvSharp4.runtime.win 도 함께 설치해줘야 합니다. 안그러면 관련된 dll 없다고 오류 메세지 뜨고 샘플코드가 동작되지 않습니다. 그리고 추가적으로 OpenCvSharp4에 맞는 ffmpeg dll 파일이 필요합니다. 그리고 기존 버전과 다르게.. IT정보공유/C# 2019. 8. 28. C#ASP.NET Core 웹 응용프로그램 - RESTFul API 서버 만들기 (2) 지난번에 C# ASP.NET Core를 이용한 기본 REST API 서버 만들기를 해보았습니다. 여기서 조금 더 진도를 나아가서 API URL을 추가 하는 방법을 알아보도록 하겠습니다. 지난번 소스에서 이어서 설명하니, 안보신 분은 참고를 하시고 기억이 안나시는 분도 다시 한번 살펴보세요. 2019/08/10 - [IT/C#] - C#으로 IIS설치 없는 ASP.NET Core 웹 응용프로그램을 만들어보자.(REST API 서버) 우선 기존 소스를 살펴보면 클래스 선언부 앞에 Route 키워드가 지정되어 있습니다. 이 부분이 API 의 URL이 되는 부분입니다. 그래서 API 호출시 http://locahost/api/Park_Get_Car_In 으로 호출했었죠. // [Produces("applicat.. IT정보공유/C# 2019. 8. 14. C# ASP.NET Core 웹 응용프로그램 - RESTFul API 서버 만들기 (1) C#으로 윈도우 어플리케이션만 개발하다가, 실행파일 또는 dll, 서비스등으로 동작하는 웹 REST API 서버를 만들 수 있다는 사실을 알았네요. NET Core를 통해 만들 수 있고, 비쥬얼 스튜디오의 새 프로젝트 메뉴를 통해 아래 사진과 같이 ASP.NET Core 웹 응용프로그램을 생성해 주면 됩니다. C#으로 IIS설치 없는 ASP.NET Core 웹 응용프로그램을 만들어보자.(REST API 서버) 웹 -> .NET Core -> ASP.NET Core 웹 응용 프로그램 순으로 선택하고, 솔루션 위치와 이름을 적당하게 정해주고 다음으로 진행합니다. 그 다음화면에서는 템플릿을 정하는 건데, ASP.NET Core에 대해 아무것도 모르는 상태이므로 그냥 API를 선택해 줍니다. 그러면 아래와 같이.. IT정보공유/C# 2019. 8. 10. [C#] FluentFTP 를 이용한 FTP Client File Upload, File Download 방법 NuGet에서 FTP Client 라이브러리를 찾아보니 FluentFTP 라는게 있더군요. 꽤 많은 개발자들이 사용하고 있는것 같고, 사용법도 간결하고 sftp나 ssl 등도 지원하고 쓸만한것 같습니다. 아래 소스코드는 업로드 샘플입니다. (업로드시 디렉토리가 없으면 생성) bool bUpload = false; bool bDownload = false; FtpClient ftp = new FtpClient(FTPHost, FTPPort), FTPId, FTPPw); ftp.RetryAttempts = 3; bUpload = ftp.UploadFile(LocalFile, UploadPath + "/" + UploadFileName, FtpExists.Overwrite, true); bDownload = .. IT정보공유/C# 2019. 8. 6. [c#] SqlDependency를 이용한 MSSQL 데이터 상태 변화 감지 간단 샘플(Service Broker) MSSQL Sevice Broker 라고 하는 대규모 분산 어플리케이션 개발을 위한 메시지 기반 매커니즘을 제공하고 있습니다. 간단하게 얘기하면, DB에 변화가 생겼을 경우 이를 어플리케이션에게 알려줄수 있습니다. 서비스 브로커에 대한 보다 전문적인 내용을 알고 싶으신 분들은 검색을 해보시고, 제 블로그에서는 C#을 이용한 MSSQL Sevice Broker를 응용프로그램에 어떻게 갖다 붙여넣어 프로그래밍을 하는지 샘플을 보여드릴겁니다. 우선은 MSSQL Server Management Studio를 이용해 Service Broker를 활성화 시켜줍니다. (기본으로 활성화 되있는거 같긴한데.ㅋ) DB의 Service Broker 설정을 완료했다면 다음으로 넘어가서 C#에서는 SqlDependency 라는.. IT정보공유/C# 2019. 5. 10. C# SHA-256 암호화시 SALT(소금치기) 적용하는 샘플코드 오랜만에 SHA256으로 암호화 할 일이 생겨서 샘플 코드를 작성하게 됐습니다. 다른 개발회사와의 연동으로 Java로 작성된 SHA-256 암호화 코드와 호환되게 CSharp으로 암호화 코드를 만들어야 했는데, Java code에는 MessageDigest 클래스에 Update라고 해서 SALT를 추가하여 해쉬암호화 텍스트를 생성할 수 있는 함수가 있더군요. Java SHA256 암호화 샘플 소스코드 //자바 SHA256 소스코드 public static String encryptSha256(String SrcText,String salt) { String returnStr = ""; MessageDigest msgDigest; try { msgDigest = MessageDigest.getInstanc.. IT정보공유/C# 2019. 2. 13. [ C# ] 16진수 문자열 Byte 변환 함수 소켓 통신을 하다 보면 디버깅을 하기 위해 수신된 데이터를 Hex 값으로 변환하여 로그를 남기는 경우가 많습니다. 이때, 데이터를 전달하는 송신부와 데이터를 수신하는 수신부 모두 한명의 개발자가개발하는 경우는 혼자서 알아서 보내는 쪽이든 받는 쪽이든 프로그램을 수정하면 그만이지만타 회사 개발자와 원거리에서 협업하는 경우나 하드웨어로 부터 데이터를 수신해야 하는 경우가생기기도 하는데요. 이럴때는 수신받은 데이터를 16진수로 로그에 남기고, 그대로 받은걸 다시 전송하는 역할을 하는 프로그램을 개발해서 테스트를 하기도 합니다. 이럴때 필요한 16진수 HEX 문자열로 저장된 데이터를 다시 Byte 배열로 변환하여 전송하는 함수 입니다. public byte[] ConvertByteArray(String strH.. IT정보공유/C# 2018. 12. 27. C# CrossThread Invoke 정상적인 방법과 비정상적인 방법 C# 프로그래밍을 하다 보면 크로스쓰레드라고 해서 빨간색 X박스가 나오는 경우가 있습니다. 크로스쓰레드라는 이름 그대로, Thread와 메인쓰레드가 충돌해서 나오는 현상인데, 통상적으로 쓰레드에서 UI Control에 접근하는 경우에 발생을 합니다. 그래서 이 크로스쓰레드를 피하기 위한 방법을 인터넷에 검색해보면 몇가지 방법이 나오는데, 가장 기본적인 방법이 Invoke와 MethodInvoker 를 이용한 방법이고, 아래와 같은 간단한 구문으로 처리할 수 있습니다. this.Invoke(new MethodInvoker(delegate { function();//Cross Thread 발생 지점에서 사용되는 펑션들 })); 그리고 CheckForIllega.. IT정보공유/C# 2018. 11. 15. 이전 1 2 3 4 5 6 7 8 다음 💲 추천 글 반응형