https://datacarpentry.org/image-processing/aio/index.html#rgb-colour-table-optional-not-included-in-timing Image Processing with Python As computer systems have become faster and more powerful, and cameras and other imaging systems have become commonplace in many other areas of life, the need has grown for researchers to be able to process and analyse image data. Considering the large volu datac..
머신러닝/Computer Vision
networkx는 python으로 Graph(Node-Edge)를 표현할 수 있는 대표적인 패키지다. NetworkX — NetworkX documentation NetworkX is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks. networkx.org 이쁘기는 GraphViz도 있는데 범용성으로 보면 networkx가 더 나은 것 같다.( 추후, networkx와 Graphviz를 함께 사용할 수 있는 방법도 정리하겠다.) networkx의 기본적인 사용법은 다른곳에서도 많이 정리해 뒀기 때문에 따로 깊이 다루지 않겠지만, 기본적으로..
import os import numpy as np from IPython.display import Image def get_files(path): files = os.listdir(path) img_path =[] gt_path = [] for file in files: if file.split(".")[-1] in ["jpg"]: img_path.append(path+"/"+file) gt_path.append(path+"/"+file.split(".")[0]+".txt") return img_path , gt_path def is_on_same_line(box_a, box_b, min_y_overlap_ratio=0.8): """Check if two boxes are on the same lin..
이미지 내 특정 색을 다른 색으로 변경하고 싶을 때 출처 : https://stackoverflow.com/questions/62648862/how-can-i-change-the-hue-of-a-certain-area-with-opencv-python How can I change the hue of a certain area with OpenCV-Python i want to edit the hsv value of a certain area The picture I want to change color of I to change all the purple parts of the image to green. Here is the result I made in an image editing software..
https://stackoverflow.com/questions/58349726/opencv-how-to-remove-text-from-background
png중 배경이 투명한 이미지를 jpg처럼 흰 배경을 추가한 후, 변환 PIL Image 활용 image = Image.open("test.png").convert("RGBA") new_image = Image.new("RGBA", image.size, "WHITE") new_image.paste(image, mask=image) new_image.convert("RGB").save("test.jpg") cv2 활용 import cv2 #load image with alpha channel. use IMREAD_UNCHANGED to ensure loading of alpha channel image = cv2.imread('your image', cv2.IMREAD_UNCHANGED) #make mas..
다음과 같이 문장이 있는 image가 존재할 때, 문장 안에 있는 space(띄어 쓰기)마다 단어를 잘라 저장하고 싶을 때. 차례대로 순서를 나열하자면, 1) 글자의 굵기를 늘린다. 2) 겹쳐진 글자를 하나의 단어 뭉치로 본다. 3) cv2의 Contour찾는 함수로 단어들을 찾아낸다. 4) boundingRect값으로 기존 이미지를 단어 단위로 잘라내기 +) cv2상 Contour 찾는거는 검은 배경에서 흰색 물건을 찾는거라 생각하면 간단 => 따라서, 찾고자 하는 글자를 흰색, 배경을 검게 해야 함 => 그렇기 때문에 배경이 없는 png는 곤란함 cv2만을 사용하지만 PIL은 내가 따로 사용하려고, plt는 jupyter notebook에서 확인하기 위해서 import했다. import cv2 imp..
https://076923.github.io/posts/Python-opencv-1/ Python OpenCV 강좌 : 제 1강 - OpenCV 설치 OpenCV 076923.github.io
PIL로 Image open했는데 자동으로 돌아가는 경우 나는 분명 정방향 이미지를 주었는데 로딩했을 때 지 멋대로 돌아가는 경우가 존재한다. 이는 보통 핸드폰으로 찍은 사진에서 EXIF 안에 방향 태그가 존재할 경우, 발생하는 문제로 보인다. https://github.com/python-pillow/Pillow/issues/4703#issuecomment-645219973 PIL.Image.open is rotating jpeg images · Issue #4703 · python-pillow/Pillow Hello, I am trying to load images with Image.open. However, the images are autorotated if they were jpg images..
단순히 이미지 두개를 겹칠 때는 아래처럼 paste함수로 해주면 된다. from PIL import Image image1 = Image.open("./image1.png") image2 = Image.open("./image2.png") image1 = image1.resize((500, 500)) image2 = image2.resize((300, 300)) #이미지 1번의 정 중앙에 놓고 싶어서 btsize = tuple(np.subtract(image1.size,image2.size)) new_image = Image.new('RGB',(500, 500), (255,2555,255)) new_image.paste(image1,(0,0)) new_image.paste(image2,(btsize[0]..
cv2.putText가 간단한데 한글이 깨짐 PIL로 한글 깨짐 방지하는 코드 상단 txt파일에 있는 글자를 이미지에 같이 표현하게끔 코드 작성 겉에 있는 bbox는 cv2의 polylines 활용 import cv2 import numpy as np import os from PIL import ImageFont, ImageDraw, Image # Define Document Type input_doc = 'directory_name' file_list = os.listdir('./gts/%s'%input_doc) file_name = [file.split('.')[0][3:] for file in file_list] image_list = ['./images/%s/'%input_doc+file+'.j..
PIL Image.open함수로 png를 열었는데 아래와 같이 배경그림이 다 검게 변해버렸다. 알고보니, open 과정에서 RGBA 옵션으로 투명도를 적용해줘야 정상적으로 이미지가 열린다. When, I opened the PNG Files by (PIL.open()), the background is returned as black images like below. => Solution Image.open($IMAGE_NAME).convert("RGBA")
from PIL import Image, ImageDraw, ImageFont, ImageOps, ImageFilter def _random_filter(bg_image): filter_dict = { '0':ImageFilter.BLUR, '1':ImageFilter.CONTOUR, '2':ImageFilter.DETAIL, '3':ImageFilter.EDGE_ENHANCE, '4':ImageFilter.EDGE_ENHANCE_MORE, '5':ImageFilter.EMBOSS, '6':ImageFilter.FIND_EDGES, '7':ImageFilter.SMOOTH, '8':ImageFilter.SMOOTH_MORE, '9':ImageFilter.SHARPEN, '10':None } for num..
file("gt_%d.txt") : GT bounding box 정보를 담고 있음, 각 polygon 좌표값은 tab('\t')으로 구분했다고 가정 [x1 y1 x2 y2 x3 y3 x4 y4 label] import cv2; import numpy as np input_id = 1 # Reading polygon txt file file = './gt_%d.txt'%input_id f = open(file,'r') lines = f.readlines() # Reading Image image_file = './images/0/%d.jpg'%input_id image = cv2.imread(image_file) # Draw for line in lines: polygon = line.split('\t')..
이미지 회전 후, 꼭지점 좌표 계산 방법 [ How to calculate the vertices coordinate(or polygon points) after image rotation] -> cv2나 albumentation, pil 등 다른 간단한 오픈 소스 또는 함수가 있을 것 같은데 찾질 못했습니다. 혹시나 아시는 분이 있다면 댓글 달아주시면 감사하겠습니다. (1) 이미지 처럼 Background image가 존재하고, A와 같은 small box들을 여러 개 합성했을 때, (2) 와 같은 이미지가 최종적으로 생성된다고 보자. 이 최종 이미지 (2)를 PIL rotate함수로 랜덤하게 회전하게끔 수정하였다. 이때 (3)번과 같은 이미지가 생성되는데, 이때, A들의 꼭지점 좌표(polygon)을..