python 10

[Python] Paramiko 를 통한 SSH 접속

Paramiko는 Python에서 SSH 프로토콜을 통하여 접속 할 수 있도록 도와주는 라이브러리입니다. 한마디로 Putty를 Python에서도 사용할 수 있도록 도와줍니다. 테스트 환경은 포티게이트(방화벽) 및 코어엣지(스위치) 이였으며, 정상적으로 작동하는 것을 확인하였습니다.  먼저 SSH 통신을 위한 paramiko 라이브러리와 연결 시 대기를 위한 time 라이브러리를 가져옵니다. import paramikoimport time 그 다음 SSHClient의 세션 객체를 만들어주고,세션 접속 시 호스트 키가 자동으로 인증받도록 있도록 접속을 허용합니다. (보안 상으로는 용이하지 않습니다.) 이후 호스트 IP와 계정 정보를 통하여 SSH에 접속해주고,지속적인 통신을 위하여 invoke_shell 명..

카테고리 없음 2024.11.11

[Python] HandDetector를 이용한 소리 크기 조절

- 본 내용은 python 3.10 버전을 이용하여 진행하였습니다. - 시작 전 설정 필수  detector.findDistance 함수를 우클릭하여 정의로 이동을 눌러준 뒤  각 행에 z1, z2 값을 추가시켜 줍니다. 다시 코드를 작성해봅시다. 먼저 손 랜드마크 감지를 위하여 cvzone의 HandDetector 라이브러리 가져옵니다. import cv2from cvzone.HandTrackingModule import HandDetector 이후 스피커 음량을 조절하기 위하여 오디오 관련 라이브러리를 불러와 해당 정보를 포인터에 대입시킵니다. from ctypes import cast,POINTERfrom comtypes import CLSCTX_ALLfrom pycaw.pycaw import Au..

[Python] PoseDetector을 이용한 운동 횟수 세기

- 본 내용은 python 3.10 버전을 이용하여 진행하였습니다. - 시작 전 설정 필수 detector.findAngle 을 입력한 후 우클릭하여 정의로 이동해준 뒤 z1, z2, z3를 각 열에 추가시켜 줍니다. 다시 코드를 작성해봅시다. 몸의 각 관절의 위치를 파악하기 위해 PoseDetector 라이브러리를 불러옵니다.import cv2from cvzone.PoseModule import PoseDetector as pd 웹캠 기본 기능 및  PoseDector 객체를 가져옵니다.cap = cv2.VideoCapture(0)detector = pd() # 포즈 디텍터 객체 생성flag = 0 # 팔 움직임을 확인하는 값count = 0 영상 처리를 위해 이미지를 반전시킨 후, 오른팔, 왼팔의 랜..

[Python] FaceMeshDetector를 이용한 눈 감김 탐지

- 본 내용은 python 3.10 버전을 이용하여 진행하였습니다. 눈 위치 탐지를 위해 FaceMeshDetector 클래스를 불러옵니다.import cv2from cvzone.FaceMeshModule import FaceMeshDetector as fmd # FaceMeshDetector 클래스 불러오기 웹캠 기본 기능 및 FaceMeshDetector 객체를 생성합니다.cap = cv2.VideoCapture(0)detector = fmd(maxFaces=1, minDetectionCon=0.75) # FaceMeshDetector 객체 생성while cap.isOpened : # 카메라가 연결되었을 경우 ret, img = cap.read() # 카메라로부터 이미지를 읽어옴 if re..

카테고리 없음 2024.10.27

[Python] 얼굴 인식 후 배경 흐리게 처리하기

- 본 내용은 python 3.10 버전을 이용하여 진행하였습니다. 이미지 검색과 블러 처리를 위해 먼저 두 라이브러리를 import 해줍니다.import cv2# 세그멘테이션 모듈 불러오기 (블러 처리용)from cvzone.SelfiSegmentationModule import SelfiSegmentation as ssm 배경과 사람을 분리할 떄 필요한 새그맨테이션 객체와 얼굴을 감지할 기본적인 Haar Cascade 데이터를 로드해줍니다.# 세그멘테이션 모듈 객체 생성segmentor = ssm()# 사전 훈련된 Haar Cascade 분류기 파일 로드face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalfa..

[Python] 웹캠 출력하기

- 본 내용은 teachable machine과 python 3.10 버전을 이용하여 진행하였습니다. 가장 먼저 웹캠으로 얼굴을 출력하기 위해 cvzone 라이브러리를 사용할 예정입니다.pip install opencv-python 명령어를 통해 opencv를 설치해주도록 합시다. 다음은 웹캠 출력 코드입니다.import cv2# 웹캠 캡처 객체 생성cap = cv2.VideoCapture(0) cv2 라이브러리를 추가한 뒤, 웹캠으로 받아온 객체값을 가진 변수를 하나 만듭니다.# 웹캠이 열려있을 경우while cap.isOpened : # 웹캠에서 프레임 읽기 ret, img = cap.read() # 결과 이미지 출력 cv2.imshow('Result', img) cap ..

[Python] 사진 학습을 통해 데이터 파일로 만들기

본 내용은 teachable machine과 python 3.10 버전을 이용하여 진행하였습니다.  먼저 모델 학습을 위하여 https://teachablemachine.withgoogle.com/ 사이트에 접속합니다. Teachable MachineTrain a computer to recognize your own images, sounds, & poses. A fast, easy way to create machine learning models for your sites, apps, and more – no expertise or coding required.teachablemachine.withgoogle.com   시작하기를 눌러 이미지 프로젝트를 선택해줍니다.  새 이미지 프로젝트에서 표준 ..

[Python] 파일을 찾을 수 없다는 오류

가끔씩 No such file or directory 오류가 뜨는 경우가 있습니다. 이때, 파이썬 파일이 있는 위치에 불러오려는 파일이 있어도 이러한 오류가 뜨는데 이는 보통 작업 디렉토리를 경로를 절대 경로로 설정해주지 않아 생기는 오류입니다. 이를 해결하기 위해선 getcwd와 chdir를 사용해주면 됩니다. getcwd는 현재 작업 디렉토리를 확인하는 함수이고, chdir 현재 작업 디렉토리를 변경하는 함수입니다. import os print(os.getcwd()) os.chdir('./가상화') print(os.getcwd()) getcwd 함수로 현재 작업 디렉토리를 출력하고, chdir로 디렉토리 경로를 변경한 것을 확인하실 수 있습니다.

vscode 깃허브 업로드 & 다운로드

1. 깃허브에 있는 프로젝트 불러오기 좌측 상단의 3번째 아이콘을 누르시면 Window용 GIT 다운로드 창이 뜹니다. 설치하시면 됩니다.상단 명령창에 >git:Clone 명령어를 입력하여 실행합니다.GitHub에서 복제 를 선택해줍니다.이 복제를 사용하기 위해서는 Github 로그인이 필요합니다. 해줍시다.기본적으로는 본인 프로젝트 파일들이 뜹니다. [사용자 명/프로젝트 파일] 이름으로 다운받을 프로젝트를 검색해줍니다.원하는 위치를 선택하시면 리포지토리가 정상적으로 생성됩니다.위 창이 뜨면 열기를 누른 후 (작업 영역에 추가를 선택하시면 현재 사용중인 탐색기에 바로 추가됩니다.)작성자를 신뢰합니다를 눌러주시면리포지토리가 정상적으로 다운로드 되신 걸 확인하실 수 있습니다. 2. 깃허브에 이미 올라간 리포..

파이썬 module을 다시 호출하려면... (importlib)

파이썬을 사용하다가 문제가 되는 상황을 하나 마주했다. # 파일1 test1 from test2 import * import time print(temp) time.sleep(10) print(temp) # 파일2 test2 import datetime temp = datetime.datetime.now() 바로 test1 상황에서 현재 시간을 출력하는 변수를 출력하고 10초 뒤, 다시 현재 시간을 나타내는 변수를 출력했을 경우 똑같은 값이 출력되는 것이다. 이 이유는 처음 import 시에는 module 내의 변수들을 초기화 한 뒤에 로드하지만, 그 다음부터는 이미 로드되어있는 module의 값들을 불러오기 때문에 값이 변경되지 않는 것이다. 그렇기에 여기서는 import 모듈을 다시 초기화하여 호출시..