import numpy as np, cv2, json
from PIL import Image
a=np.asarray(Image.open('brand/logo-asli.jpg').convert('RGB')).astype(np.int32)
r,g,b=a[:,:,0],a[:,:,1],a[:,:,2]
navy=(b>r+25)&(b<170)&(r<120)
gold=(r>g)&(g>b+20)&(r>120)
ink=(navy|gold).astype(np.uint8)
# silhouette: close small gaps (white lines ~15px) with big closing
k=cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(41,41))
sil=cv2.morphologyEx(ink*255,cv2.MORPH_CLOSE,k)
cs,_=cv2.findContours(sil,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE)
c=max(cs,key=cv2.contourArea)
ap=cv2.approxPolyDP(c,2.5,True).reshape(-1,2)
print('silhouette poly',ap.tolist())
# navy components (separate panels)
n,lab,st,cen=cv2.connectedComponentsWithStats(navy.astype(np.uint8),8)
for i in range(1,n):
    if st[i,4]>2000:
        x,y,w,h,area=st[i]; print('navy comp',i,x,y,w,h,area)
        m=(lab==i).astype(np.uint8)*255
        cs,_=cv2.findContours(m,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE)
        cc=max(cs,key=cv2.contourArea)
        p=cv2.approxPolyDP(cc,3,True).reshape(-1,2)
        print('   poly',p.tolist()[:40])
