본문 바로가기

Development/Python11

[pillow] 이미지 read했을 때 rotation 현상 pillow image read시 rotate현상 problem 예전에 opencv-python을 사용하여면서 IMREAD_UNCHANGED flag로 사용했을 때 image가 rotation되는 현상이 발생했었다. https://shuka.tistory.com/23 [OpenCV] imread IMREAD_UNCHANGED flag 사용시 image rotation opencv imread에서 rotation된 이미지 원래대로 저장하는 방법 opencv에서 imread를 사용하는데 이미지에서 몇몇 장이 갑자기 rotate된 상태가 됐다. img = cv2.imread('test.jpg', cv2.IMREAD_UNCHANGED) cv2.imwrite('result.jpg shuka.tistory.com .. 2023. 11. 30.
python package를 requirements 텍스트로 저장 python package를 requirements 텍스트로 저장하는 방법 프로젝트 작업을 하다 보면 가상 환경을 새로 만들거나 다른 PC로 프로젝트를 옮겨야 할 경우가 발생하기도 하고, 갑자기 필요한 python library가 생겨서 설치를 하면서 requirements.txt에 작성하는 것을 깜빡할 때도 있다. Docker를 사용한다면 해당 container를 image로 만들고 tar파일로 만들어서 python library를 신경쓸 필요가 없는데 아닐 경우 약간 귀찮고 복잡해질 수도 있다. 방법1. pip freeze pip freeze는 현재 환경에서 설치된 python library와 version에 대해 밑의 사진과 같이 출력되는 것을 볼 수 있다. pip freeze 출력된 부분을 복사해.. 2023. 11. 22.
python yaml file load시 error 발생 python code에서 yaml파일을 load했을 경우 에러 발생 yaml파일을 작성하고 python code로 다음과 같이 load하려고 했다. import yaml with open('train.yaml') as f: yml = yaml.load(f) 그런데 다음과 같은 오류가 발생했다. TypeError: load() missing 1 required positional argument: 'Loader’ yaml.load()시 TypeError 해결 방법 오류 원인은 PyYAML 버전의 문제였다. pip list를 치면 현재 install되어 있는 library list들을 볼 수 있는데 PyYAML version이 6.0으로 기존의 쓰던 version보다 높아지면서 발생한 오류였다. 해결 방법1.. 2023. 2. 22.
timm library로 인한 RuntimeError 발생 RuntimeError 발생 제대로 실행되는 code를 가지고 새롭게 test진행을 하려고 anaconda의 새로운 가상 환경을 만들었다. code를 돌리기 위해 필요한 library들을 설치하고 test를 진행했는데 갑자기 아래와 같이 error가 발생하는 것이다. error message: RuntimeError: Given normalized_shape=[1024], expected input with shape [*, 1024], but got input of size[1] 해결 방법 위의 error을 해결하기 위해 anaconda의 가상 환경도 다시 만들어 보고 pytorch verion과 torchvision version도 여러 번 바꿔가기도 해봤는데 원인은 전혀 다른 library에 대한 .. 2023. 2. 10.
AttributeError: module ‘base64’ has no attribute ‘encodestring‘ Base64란 data를 ASCII 문자로 이루어진 문자열로 바꾸는 인코딩(encoding)이다. 아래의 링크에 base64에 대한 설명이 잘 되어 있다. https://effectivesquid.tistory.com/entry/Base64-인코딩이란 Base64 인코딩이란? 인코딩이란? Base64 인코딩에 대해 알아보기전에 먼저 인코딩이란게 무엇인지 간략하게 알아보자. 인코딩(encoding)은 정보의 형태나 형식을 표준화, 보안, 처리 속도 향상, 저장 공간 절약 등을 위 effectivesquid.tistory.com base64 has no attribute encodestring 에러 발생 import base64를 해주고 base64.encodestring()을 사용하려고 했더니 base64.. 2023. 2. 9.
[python] pip install TypeError: expected str, bytes or os.PathLike object, not int TypeError: expected str, bytes or os.PathLike object, not int Problem local환경에서 python3.9를 설치하고, python3-pip을 설치했더니 pip install을 할 때마다 밑에와 같은 에러가 발생했다. TypeError: expected str, bytes or os.PathLike object, not int Solution 이런 저런 방법이 있겠지만 내 경우는 설치했던 python3-pip을 제거하고 get-pip.py를 받아서 설치했더니 해결됐다. wget https://bootstrap.pypa.io/get-pip.py python get-pip.py 2023. 1. 4.
[Python] DCM파일을 jpg나 png의 image 파일로 변환 DCM 확장자를 png image 파일로 변환 DICOM(Digiral Imaging and Communications in Medicine)은 의료 분야에서의 표준으로 파일들을 보면 .dcm으로 되어 있다. 방법 1 dcm 파일은 밑의 명령어로 적어둔 pydicom 패키지를 설치해서 파일을 읽고 변환해서 바로 사용할 수도 있다. (해당 방법은 해당 글에는 적지 않았다.) pip install pydicom 방법 2 그리고, 밑의 명령어로 적어둔 mritopng 패키지를 설치해서 png나 jpg와 같은 이미지로 변환해서 바로 저장할 수 있다. pip install mritopng mritopng를 사용해서 이미지를 저장하는 방법은 단일 이미지 파일에 대해 저장 폴더 내의 이미지들에 대해 저장 이 있다. .. 2022. 12. 5.
[XML] python code로 xml label 수정 python code로 xml label값 수정하는 방법 가끔 detection에서 labeling 된 object의 name을 수정하고 싶거나 bounding box 값을 변환하고 싶을 때 labeling tool을 사용하기도 하지만 직접 코드로 원하는 값으로 바꾸고 싶을 때가 있다. 전체 example python code 밑의 코드는 xml로 되어있는 annotation파일에 대해 object의 name을 수정하거나 bounding box 값을 수정할 수 있는 코드이다. import os # 라이브러리 호출 import xml.etree.ElementTree as ET # 변환하고 싶은 xml파일들을 list에 저장 path = 'annotations' anno_list = [os.path.join.. 2022. 9. 26.
[Scipy] error: library dfftpack has Fortran sources but no Fortran compiler found pip으로 scipy 설치시 에러 발생 scipy를 설치하다 보면 밑의 이미지처럼 에러가 발생할 경우가 있다. 에러 내용: 'error: library dfftpack has Fortran sources but no Fortran compiler found' 오류 발생에 대한 이미지 scipy 설치 오류에 대한 해결 방법 (sudo) apt-get install gfortran 2022. 4. 18.
[Flask] image에 대해 주고 받기 server.py from flask import Flask, jsonify, request from PIL import Image import json from io import BytesIO import base64 app = Flask(__name__) @app.route("/", methods=["GET", "POST"]) def index(): json_data = request.get_json() dict_data = json.loads(json_data) img = dict_data['img'] img = base64.b64decode(img) img = BytesIO(img) img = Image.open(img) # img.save('test.jpg') img_shape = img.sha.. 2021. 12. 13.
[Python] 백 슬레시를 슬레시로 변경 백 슬레시를 슬레시로 변경하는 방법 가끔 windows에서 쓰던 파일에 경로가 저장되어 있을 경우 백 슬레시로 되어 있을 때가 있다. 백 슬레시로 되어 있는 경로를 슬레시를 이용한 경로로 바꿔주고 싶은데 슬레시만 해주면 escape sequence로 되기 때문에 오류 가 발생한다. 예제 코드 만약 백 슬레시를 슬레시로 바꿔주고 싶으면 다음과 코드와 같이 백 슬래시를 두번 사용하면 된다. text = "C:\Users\leekh\Downloads\val\99.jpg" a = text.split("\\")[-1] b = text.replace("C:\\Users\\leekh\\Downloads\\val\\", "train/") print(a) -> 99.jpg print(b) -> train/99.jpg 2021. 10. 6.
728x90