단순히 이미지 두개를 겹칠 때는 아래처럼 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)을..
단순히 PIL Image를 resize할 때는 특정 값 또는 비율로 조절하는 것이 쉽다. pilimage.resize((x,y)) 다만, 특정 비율로 조절하고 싶을 때 예를 들어 특정 y값을 갖고 있지만 일정한 가로 세로 비율을 유지한 채 조절하고 싶을 때는 다음 함수를 사용한다. pilimage.thumbnail((x,y)) # x, y는 각각 resize해도 되는 최댓값 이러면 정해진 비율대로 조절됨. 추가로, thumbnail함수를 사용할 때 아래와 같이 다른 value값에 할당하고 싶을 때는 꼭 copy함수를 쓰자 안그러면 thumbnail함수를 사용했는데 정작 할당된 다른 변수 값은 None이 나올 수 있음 # 이렇게 하면 에러 발생함 new_image = pilimage.thumbnail((x..
Image.fromarray new_image = Image.fromarray(before_image.astype(np.uint8)) +) 이 때 numpy dtype이 uint8형태인지 꼭 확인해야 함. 안그러면 아래와 같은 에러 발생 아닐 경우에는 상단처럼 astype으로 형변환 진행 후 PIL Image로 변환 TypeError: Cannot handle this data type: (1, 1, 4),
PIL.Image.alpha_composite(im, dest=(0, 0), source=(0, 0)) : Image 1에 대해서 Image 2로 알파 합성 진행 Parameters : - im1 : 이 위에 합성할 이미지 - (optional) dest에서 왼쪽 상단 corner의 좌표 - (optional) src에서 왼쪽 상단 corner의 좌표 Return : Image Object 두 이미지 모두 RGBA 형태여야 하고 같은 사이즈 여야 함. PIL.Image.blend(im1, im2, alpha) : 특정 값(알파 상수)를 사용해 두 input image를 적절히 보간하여 새 이미지 합성 Parameters : - im1 : 첫 번째 이미지 - im2 : 두 번째 이미지(첫번째, 두번째 같은..
# FOR PNG shape import numpy from PIL import Image, ImageDraw # read image as RGB and add alpha (transparency) im = Image.open("crop.jpg").convert("RGBA") # convert to numpy (for convenience) imArray = numpy.asarray(im) # create mask polygon = [(444,203),(623,243),(691,177),(581,26),(482,42)] maskIm = Image.new('L', (imArray.shape[1], imArray.shape[0]), 0) ImageDraw.Draw(maskIm).polygon(polygon,..
참고 블로그 OpenCV - 10. 히스토그램과 정규화(Normalize), 평탄화(Equalization), CLAHE 이번 포스팅에서는 히스토그램에 대해 알아보겠습니다. 이번 포스팅 역시 '파이썬으로 만드는 OpenCV 프로젝트(이세우 저)'를 정리한 것임을 밝힙니다. 코드: github.com/BaekKyunShin/OpenCV_Project_Python/tr bkshin.tistory.com https://engineer-mole.tistory.com/12 [python/OpenCV] 이미지 처리 예제 Q21~Q25 문제 링크 https://github.com/yoyoyo-yo/Gasyori100knock/tree/master/Question_21_30 yoyoyo-yo/Gasyori100knoc..
import torchvision # imgs shape = torch.Size([1, 3, 1056, 736]) torchvision.utils.save_image(imgs,'./test.jpg') torchvision 내 utils.save_image 함수 적용 import cv2 cv2.imwrite('./test.jpg', imgs) cv2 내 imwrite 함수 적용 from PIL import Image # 이미지 열기 im = Image.open('python.png') # 이미지 크기 출력 print(im.size) # 이미지 JPG로 저장 im.save('python.jpg') PIL 객체 내 save함수 사용
Pytorch 기반의 딥러닝 모델 사용 도중, torch.utils.data.Dataloader로 정의된 dataloader의 next()함수를 호출하여 데이터를 로딩하는 과정에서 상당히 오랜 시간이 걸렸고, ctrl + C로 중단시켜 보니 아래와 같은 오류가 뜬다. ^CTraceback (most recent call last): File "train.py", line 243, in main(args) File "train.py", line 165, in main image_tensors, labels = train_dataset.get_batch() File "dataset.py", line 156, in get_batch image, text = data_loader_iter.next() File ..
https://sangminwoo.github.io/glossary Glossary A to Z sangminwoo.github.io 심플하고 정의위주로 잘 정리되어 있는 좋은 자료
머신러닝 통계학 핵심 개념 - 가설 검정 : 표본에 대한 통계적 테스트를 수행해, 전체 모집단에 대한 추론을 생성하는 과정, 귀무가설(H0), 대립 가설(연구가설, H1)을 통해 가정이 통계적으로 의미가 있는지 검정 : 모델링에서 각 독립 변수에 대해 0.05(5% 미만)보다 작은 p-value는 유의미하다고 간주. - 가설 검정의 단계 : [귀무가설 정의] → [표본 추출] → [검정 통계량에 따른 귀무가설의 통계적 유의성(p-value) 확인] → [검정 통계량에 따라 귀무가설 채택(p-value 0.05 이상) 또는 기각(p-value 0.05 미만)] - p-value : 귀무가설이 옳다는 전제 하에 표본에서 실제로 관측된 통계값과 같거나 더 극단적인 통계값이 관측될 확률 ex) 한 빵집에서 생산..