728x90

2022/03 7

[python+opencv] ip 카메라(cctv)로부터 영상 받기

오늘은 python과 opencv를 이용해서 ip 카메라(cctv)로부터 영상 신호를 받는 방법에 대해 공유하고자 합니다. 우선 usb 카메라(흔히 우리가 부르는 웹캠)를 통해 영상 신호를 받을 때는 이런 코드가 사용됩니다. python+opencv를 사용해보신 분에게는 아주 익숙한 한 줄일 것입니다. capture = cv2.VideoCapture(0) 그런데 만약 ip 카메라로부터 신호를 받을 때는 다음과 같은 코드를 사용해야 합니다. 필요한 url은 각자 상황에 따라 다를 것입니다. 사용하시는 ip 카메라의 메뉴얼 등의 문서를 참고하시면 됩니다. 192.168.0.33:554/h264major는 제 상황에 맞는 코드라는 것을 기억해주세요. capture = cv2.VideoCapture('rtsp:..

코딩/python 2022.03.31 (2)

[css] input 박스 또는 textarea 박스 클릭했을 때 테두리 강조되지 않게 하기(:focus 의사 클래스)

html의 input 태그와 textarea 태그는 무언가를 입력할 때 자주 사용되는 태그들입니다. input 태그의 경우 아이디, 비밀번호와 같이 짧은 것을 입력할 때 많이 사용되고, textarea 태그는 문장을 입력할 때 주로 사용됩니다. 무언가를 입력하기 위해 input 박스와 textarea 박스를 클릭하면 기본적으로 검은색의 굵은 테두리가 생성됩니다. 만약 이 테두리를 없애고 싶다면 :focus 의사 클래스를 사용하여야 합니다. :focus 의사 클래스란 입력 폼을 클릭된 상태를 의미합니다. textarea:focus { outline: none; } outline 속성을 none으로 해주면 다음 이미지와 같이 입력 폼을 클릭했을 때 더이상 굵은 테두리로 강조되지 않습니다.

코딩/web 2022.03.20

[flask+jinja2] 반올림하기, round 필터

서버에서 130.456 실수를 담은 데이터 data를 전송했다고 가정하겠다. 넘어온 숫자를 반올림해서 보여주고 싶을 때는 round 필터를 사용하면 된다. 참고로 jinja2에서 필터란 데이터를 다른 형태로 바꿔주는 역할을 하는 것을 지칭한다. {{data|round}} 서버에서 넘어온 130.456은 이제 130.0으로 보여질 것이다. 정수로 반올림이 되었지만 뒤에 .0이 붙은 것이 불편한 사람들이 있다면, int 필터를 추가하여 정수로 보여지게 하면 된다. {{data|round|int}} 130 만약 소수점 아래 두번째 자리까지 반올림하고 싶다면 round(2)를 사용하면 된다. {{data|round(2)}} 130.46으로 표현될 것이다. 참고자료 [1] https://stackoverflow...

코딩/flask 2022.03.19

[python+plotly] 그래프 x축, y축 값 범위 설정하기

오늘은 plotly로 생성한 그래프의 x축, y축 값의 범위 설정하는 법에 대해 알아보자. 쉬운 이해를 위해 간단한 예제를 만들었다. import plotly.express as px (중략) fig = px.scatter(df, x="width", y="height") fig.update_xaxes(range=[0, 3]) fig.update_yaxes(range=[50, 200]) x축 값의 범위와 y축 값의 범위를 설정하기 위해서는 각각 update_xaxes 메소드와 update_yaxes 메소드를 활용하면 된다. 위 코드에서는 x축의 범위를 0에서 3, y축의 범위를 50에서 200으로 설정했다. plotly는 데이터 시각화에 있어서 굉장히 파워풀한 도구 중의 하나이니 아직 안 써보신 분들은 기..

코딩/python 2022.03.18

[python+plotly] px.scatter 플롯에 추세선 넣기

plotly를 이용해서 산점도를 그릴 때 추세선(trendline)을 넣고 싶은 경우가 있다. 추세선을 넣어주면 데이터의 장기적인 증감 추세를 좀 더 한 눈에 볼 수 있기 때문이다. 추세선을 넣는 방법은 매우 간단하다. px.scatter(df, x="total_bill", y="tip", trendline="ols") 그런데 여기서 에러가 나는 분들이 있을 것이다. 아마도 statsmodels 모듈과 관련된 에러일 것이다. 이 경우에는 statsmodels를 설치해주면 된다. pip install statsmodels 만약 추세선의 색상을 별도로 지정하고 싶을 때는 trendline_color_override를 설정해주면 된다. px.scatter(df, x="total_bill", y="tip", t..

코딩/python 2022.03.17

[pyqt5] 야구 중계에 스트라이크 존이 제공되지 않을 때 시청자를 위한 가이드 앱

야구 중계를 보면 보통 시청자들에게 스트라이크 존에 대한 정보를 주기 위해 사각형 가이드가 함께 송출됩니다. 그런데 간혹 어떤 중계에서는 그러한 가이드가 없는 경우가 있습니다. 이런 경우에는 시청의 재미가 반갑됩니다. 저는 이런 경우를 위해서 pyqt를 이용하여 간단한 프로그램을 만들어봤습니다(예전에 심심풀이로 만들어봤는데, 이제야 공유해봅니다). 우선 설치 필요한 패키지는 pyqt5와 pyinstaller입니다. pip install pyqt5 pip install pyinstaller 파이썬 소스코드는 다음과 같습니다. import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget, QSlider, QDial..

코딩/pyqt, pyside 2022.03.16 (2)

[python] 파이썬스럽게 코딩하는 법, PEP8 정리

필자가 처음으로 접했던 프로그래밍 언어는 C언어다. 윤성우의 열혈강의를 읽으면서 재밌게 코딩의 세계에 입문하게 되었던 기억이 난다. 그리고 석사 과정을 밟으면서는 matlab을 많이 사용했다. 해당 연구 분야의 시뮬레이션 코드들이 대부분 matlab으로 작성되어 있었기 때문이다. 그러나 머신러닝/딥러닝을 연구에 접목하면서부터는 matlab의 한계를 느끼기 시작했다. 대부분의 라이브러리가 유료였기 때문이다. 그래서 넘어오게 된 언어가 바로 파이썬이다. 파이썬에서는 머신러닝/딥러닝에 관한 많은 훌륭한 라이브러리가 무료다. 그리고 직장에 와서도 여전히 파이썬을 이용해서 웹 사이트와 응용 프로그램 등을 개발하고 있다. 파이썬이 필자에게 돈을 벌어다 주는 언어가 되었다. 현재 필자는 프로그래밍 언어 중 파이썬 비..

코딩/python 2022.03.15 (3)