MapleStory Finger Point

Development 27

Invalid SOS parameters for sequential JPEG 에러 [Python OpenCV]

Invalid SOS parameters for sequential JPEG OpenCV 기반 코드 실행 도중에 SOS 관련 에러가 발생하였다면, 해당 이미지에 대한 속성 문제이다. 아마도 이미지 속성을 들여다 보면 Exif 속성들(카메라 제조업체, 카메라 모델 등등) 이 있을 텐데, 이걸 삭제해야한다. 구글링해보니 카메라 제조업체에 삼성 핸드폰이라고 나오면 해당 에러가 발생한다고 카더라. 따라서 PhotoScape X(무료 사진 편집 프로그램)를 다운받은 뒤, 사진 뷰어 - 모든 사진 드래그 후 우클릭 포맷 바꾸기 - 메타데이터 정보를 보존합니다 클릭 해제 후 저장 저장된 사진들을 붙여넣기하면 끝. 그러면 더이상 Exif 정보들이 모두 삭제되어 SOS 에러가 발생하지 않는다. 만약 이미지 속성 정보들을..

QSettings 로그인 알고리즘

이 내용은 이전 글과 연관되어 있습니다. 간단한 로그인 알고리즘 중 일정 횟수 비밀번호 에러가 발생하면 해당 계정의 로그인을 일시적으로(필자는 1분으로 설정하였음) 차단하는 기능을 구현해보겠습니다. 우선 크게 필요한 것은 첫 번째로 비밀번호 에러가 발생한 시간, 두 번째는 비밀번호 에러 횟수입니다. 현재 시간과 에러 발생 시간을 비교하여 로그인 성공 유무를 선택하는 알고리즘입니다. 자세한 것은 코드에 주석 처리 해놓았습니다. #!/usr/bin/env python3 # # Authors: # 5jx2oh@gmail.com import sys import time from datetime import datetime from PySide6.QtCore import QSettings from PySide6...

Development/GUI 2023.02.21

Python으로 ChatGPT 프로그램 만들어보기

요새 핫하디 핫한 ChatGPT를 사용한 네이버 파파고로 번역하는 간단한 프로그램을 만들어 보았다. 먼저 ChatGPT를 사용하기 위해서는 OpenAI api key를 발급 받아야 한다. 그리고 파파고를 사용하기 위해 네이버 개발자에서 api key를 발급 받는다. import json import urllib.request import openai papago_client_id = 'PAPAGO_CLIENT_ID' # 파파고 API ID papago_client_secret = 'PAPAGO_CLIENT_SECRET' # 파파고 API secret 키 openai.api_key = 'OPENAI_API_KEY' # openai API 키 def papago(text: str, current_lang_t..

Development/ChatGPT 2023.01.31

QSettings List of Dictionary

QSettings는 Dictionary, Key 값과 Value 값으로 이루어져 있다. 그러다가 코드 작성 중에 Value 값을 List 형식으로 만들어야 할 작업이 있었다. 작성한 형식은 아래와 같다. from PySide6.QtCore import QSettings class Setting: settings = QSettings('Test', 'Hi') defaults = {'first': 'one', 'second': 'two', 'Hongdae': ['newjeans', 'hype boy']} @classmethod def get(cls, key): return cls.settings.value( key, cls.defaults[key], type(cls.defaults[key]) ) QSetti..

Yolov7 프로젝트 실행 파일 만들기

최근에 사람을 인식하여 모자이크 처리하는 프로그램을 작성하였는데, 실행 파일 만드는 도중 에러가 발생하였다. 진행한 환경은 다음과 같다. - GPU: NVIDIA GeForce RTX 3070 Laptop GPU - CUDA: 11.6 - cuDNN: 8.5.0 ... Process producer: Traceback (most recent call last): File "multiprocessing\process.py", line 315, in _bootstrap File "multiprocessing\process.py", line 108, in run File "detect_ui.py", line 187, in detect File "utils\torch_utils.py", line 65, in s..

Development/YOLO 2023.01.09

YOLO v7 인식된 물체를 모자이크 하기

현재 YOLO중 최신인 v7을 사용하여 물체 인식을 진행해보았다. 기본적으로 물체를 인식하게 되면 랜덤한 색상의 사각형 박스로 표기한다. 만약 사람을 인식한다면 얼굴뿐이 아닌 사람 몸 전체를 인식하여, 사각형 박스 내부에 사람이 들어가 있는 형태이다. 생각보다 인식이 엄청 정확해서 내가 가지고 있는 사진들로도 인식시켜보았다. 그런데 찍은 사진 중에 지나가던 사람도 찍혀 같이 인식되었다. 요즘은 개인정보가 중요시 되므로 만약 사람이라면 모자이크 처리하도록 해보면 어떨까 생각을 하여 진행해보았다. 먼저 YOLO v7을 개발한 WongKinYiu의 Github에 코드가 올라와 있어서 그대로 가져다 쓰면 된다. (YOLO v7은 PyTorch로 개발한다.) 그 다음 순서는 utils 폴더에 있는 plots.py..

Development/YOLO 2022.12.07

윈도우 환경 YOLO IndexError: invalid index to scalar variable.

간단한 YOLO 테스트를 해보려 했는데.. 자꾸 Index 에러가 발생한다. 실행 환경: Window 11 Darknet YOLO v3 openCV==4.6.0 python==3.10.0 ... net = cv2.dnn.readNet(weights_file, config_file) net.setPreferableBackend(cv2.dnn.DNN_BACKEND_CUDA) net.setPreferableTarget(cv2.dnn.DNN_TARGET_CUDA) classes = [] with open("./coco.names", "r") as f: classes = [line.strip() for line in f.readlines()] layer_names = net.getLayerNames() outpu..

Development/YOLO 2022.11.17

PyInstaller 에러 메시지 출력 (바로 꺼짐 이유 확인)

가끔 PyInstaller로 만든 exe 파일을 실행하였을 때, 콘솔 창이 생겼다가 바로 꺼지며 프로그램이 실행되지 않을 때가 있다. 에러 메시지를 확인하고 싶은데 너무 빠르게 사라져서 확인할 수가 없으면 input() 같은 입력 대기 상태 구문을 추가해도 되지만, 직접 코드를 수정해야해서 귀찮다. 그럴 때는 간편하게 1. cmd를 켠다. 2. exe 파일 경로를 입력한다. 3. Enter를 누른다. 이 망할 opencv 에러는 일주일째 해결 중

PyQt5 이미지 비율 맞추기

기본적으로 Qt에서 이미지를 넣기 위해서 빈 QLabel을 선언한 뒤에 넣어야 한다는 건 다들 알고 있을 것이다. 막상 이미지를 넣어보면 내 생각대로 안 들어가지는 게 한두 번이 아니었다. 그럴 때마다 구글링 하고 '아 이렇게 했었지..' 하며 또 까먹는다. 그래서 그냥 나도 내 머릿속을 정리할 겸 이해하기 쉽게 설명할 거다. 솔직히 아래 그림 보면 끝나긴 한다. 그래도 예제 코드를 만들어 보았다. 귀여운 비둘기 사진으로 테스트해보겠다. 첫 번째 코드 - import os from PyQt5.QtGui import QPixmap from PyQt5.QtWidgets import QMainWindow, QLabel from PyQt5.QtCore import Qt class ThumbnailView(QMa..

Development/GUI 2022.06.20