프로그래밍 언어
-
python openCV로 외부 IP cam 영상 제어(onvif)프로그래밍 언어 2022. 11. 16. 15:28
이번에 일정 시간에 한 번씩 외부에 있는 영상을 사진으로 저장해야 하는 일이 생겼다. 다른 건 비용이 비싸서 최대한 저렴하게 알아본 결과 IP Cam + LTE모뎀으로 조합했다. IP Cam은 7만원대, LTE모뎀은 16만원대?였나.. 요금제는 고정IP로 매월 3만원대.... 더 싸게 할 수도 있긴하던데... 과제비 꿀꺽ㅋ (카메라 더 비싼걸 살 걸 그랬다... 발열이 있네?;;) 우선 카메라 설정부터 하여 'ispy'라는 프로그램으로 PC에서 접속 확인을 했다. 아래는 셋팅 및 영상 확인 순서. 영상은 파이썬, openCV로 제어했다. openCV는 알다시피 > pip install opencv-python 코드는 복붙이 정석이지..ㅋㅋㅋㅋ import cv2 import datetime import ..
-
-
C# RGB 출력, YUV420 -> RGB로 출력프로그래밍 언어/C# 2020. 9. 1. 16:17
Raspberry Pi Zero W에 카메라 이미지를 PC에 전송하여 출력하는 것을 작업하고 있다. 그런데.... Raspberry Pi 에서 큰 문제가 생겼다... 자료를 찾아보니 대부분 OpenCV를 사용하여 데이터를 보내길래 OpenCV를 깔아봤는데.... 'Illegal instruction'이라고 에러가 떠서 동작이 안된다. 아무리 삽질을 해봐도 해결 방법을 못 찾았다ㅠㅠ;; 그래서 다른 방법을 찾던 중, 라즈베리 기본 설치 프로그램 중에 raspistill, raspivid, raspiyuv, raspividyuv를 사용해서 데이터를 보낼 방법을 찾았다. 라즈베리에서 카메라 실행은 raspividyuv -w 480 -h 320 -fps 5 -t 0 -l -o tcp://192.168.0.125..
-
C# 이미지 그리기, 출력프로그래밍 언어/C# 2020. 8. 21. 14:16
그림을 출력할때, 다음과 같은 방법이 있다. - 절대 경로 imgTest.Source = new BitmapImage(new Uri(@"C:\Image\test.png", UriKind.Absolute)); - 상대 경로 imgTest.Source = new BitmapImage(new Uri(@"\test.png", UriKind.Relative)); - 상대 경로(리소스) imgTest.Source = new BitmapImage(new Uri(@"\test.png", UriKind.Relative)); imgTest는 이미지 도구상자 이름이다. BitmapImage 2번째 인자는 https://docs.microsoft.com/ko-kr/dotnet/api/system.urikind?view=net..
-
C# NAudio MicroPhone 볼륨 조절프로그래밍 언어/C# 2020. 8. 20. 21:07
private void sourceStream_DataAvailable(object sender, NAudio.Wave.WaveInEventArgs e) { byte[] encoded = e.Buffer; if (reLen + encoded.Length 6) { encoded.CopyTo(recordingStream, reLen); int i; float multiplier = 12.0f; // 볼륨 Gain for (i = 0; i < encoded.Length; i = i + 2) { Int16 sample = BitConverter.ToInt16(encoded, i); sample = (Int16)(sample * multiplier)..
-
Visual Studio 2019 한글 형식(인코딩). 유니코드, EUC-KR프로그래밍 언어/WinApi 2020. 7. 28. 10:17
문자를 입력 받았을 경우, 한글인지 아닌지 판별하기 위하여 작업 도중, WCHAR, char의 한글 형식을 같은 유니코드를 사용하고 있는 줄 알았으나 값이 다르게 나와서 찾아 보았다. 한글의 형식은 컴파일러마다, 운영체제마다 다르다고 한다. Window10, Visual Studio 2019의 환경에서 WCHAR 형은 유니코드를 사용하고 char 형은 EUC-KR을 사용하는 것 같다. ex) //WCHAR eee[20] = TEXT("가나하"); unsigned char eee[20] = "가나하"; unsigned char eee1; unsigned char eee2; eee1 = *((unsigned char*)eee + 0); eee2 = *(((unsigned char*)eee) + 1); Tex..
-
win32api 서브클래싱, 전역클래싱, 슈퍼클래싱프로그래밍 언어/WinApi 2020. 7. 27. 13:23
Tab(탭) 키로 각 차일드 윈도우간 포커스 이동을 하려고 했더니 클래싱을 사용해야할 것 같다. # 서브클래싱 서브클래싱이란 도스의 인터럽트 가로채기와 개념적으로 동일하며 윈도우 프로시저로 전달되는 메시지를 중간에 가로채는 기법이다. 운영체제 -> 서브클래스 프로시저 -> 윈도우 프로시저 서브클래스 프로시저는 메시지를 먼저 받아서 다음의 세가지 방법으로 이 메시지를 처리할 수 있다. ① 통과 : 관심 없는 메시지는 바로 윈도우 프로시저로 넘겨버린다. ② 직접 처리 : 원하는 메시지가 왔을때 중간에 메시지를 처리하고 리턴. 윈도우 프로시저로는 전달되지않는다. ③ 변형 : 메시지를 받아서 원하는 변경 후 윈도우 프로시저로 보낸다. (키입력의 변경등) 새로운 윈도우 프로시저를 생성해서 아래 함수를 통해 변경할..
-
Visual Studio 2019 win32api 아이콘 변경이 안된다프로그래밍 언어/WinApi 2020. 7. 22. 13:32
리소스에 아이콘 추가 후, 메인 클래스에 wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1)); wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_ICON1)); 를 수정해도 탐색기에 표시되는 아이콘이 변경되지 않았다. 자료를 찾아도 MFC, C#은 나와있지만 win32api는 없었다. 아마 내부적으로 캐시된게 잘 처리가 안되지 않았을까... 라고 누가 그러더라.. 아래와 같이 다시 불러와 주니 바뀌었다. 프로젝트에서 기존항목을 누르고 변경할 아이콘을 선택한 후에 컴파일을 하니 바뀌었다. 다시 해보니 안된다.... 껐다 키고 뭔짓을 해야된다.....