- print('使用openai的api進行DALL-E AI修圖生成')
- !pip install openai
- import cv2
- im=cv2.imread("dog.jpg", cv2.IMREAD_UNCHANGED)
- h, w, c=im.shape
- s=min(h,w)
- print(h, ',', w, ',s=',s)
- #圖片裁切成正方形切
- if w<=h:
- im=im[(h-w)//2:w+(h-w)//2, :, :]
- else:
- im=im[:, (w-h)//2:h+(w-h)//2, :]
- im.shape
- im=cv2.resize(im, (1024, 1024))
- cv2.imwrite('shiba_crop.png', im)
- # mouse callback function 做法與C++塗鴉類似
- def onMouse(event, x, y, flags, im):
- if event == cv2.EVENT_LBUTTONDOWN:
- flags = 1
- elif event == cv2.EVENT_MOUSEMOVE:
- if flags==1:
- cv2.circle(im,(x,y), 10, (255,255,255,0),-1)
- elif event == cv2.EVENT_LBUTTONUP:
- flags = -1
- cv2.imshow('image',im)
=============================================
- im=cv2.cvtColor(im, cv2.COLOR_BGR2BGRA)
- cv2.namedWindow('image')
- flags=-1
- cv2.setMouseCallback('image', onMouse, im)
- cv2.waitKey(0)
- cv2.destroyWindow('image')
- cv2.imwrite('mask.png', im)
- im=cv2.imread("mask.png", cv2.IMREAD_UNCHANGED)
- im=cv2.resize(im, (1024, 1024))
下面為openai dall-e api 處理:
- import openai
- openai.api_key_path = "openai-key.txt"
- p_str="The dog plays a red toy car in the realistic style"
- r = openai.Image.create_edit(
- image=open("shiba_crop.png", "rb"),
- mask=open("mask.png", "rb"),
- prompt=p_str,
- n=1,
- size="1024x1024"
- )
- print(r)
- im=r["data"][0]["url"]
- import requests
- r0 = requests.get(im)
- if r0.status_code==200:
- with open('im/'+p_str+'.png', 'wb') as f:
- f.write(r0.content)
- x=cv2.imread('im/'+p_str+'.png')
- cv2.imshow('AI image', x)
- cv2.waitKey(0)
- cv2.destroyAllWindows()
沒有留言:
張貼留言