E2 is FEASIBLE for the measured matrix. The initial private integration candidate is BUILDABLE; its accepted comment delta is NOT REBUILT. STEP20C remains NEXT and production multi-output remains NOT YET SUPPORTED.
21 lines
1.1 KiB
Python
21 lines
1.1 KiB
Python
"""Exact binary RGB masks with explicit output origin, clip and occlusion.
|
|
|
|
Screenshots prove color/visible geometry only, never native-buffer identity.
|
|
"""
|
|
from PIL import Image,ImageChops,ImageDraw
|
|
from model import *
|
|
COLORS=dict(TOPLEVEL=(35,68,204),POPUP_A=(224,192,32),POPUP_B=(32,208,160))
|
|
|
|
|
|
def color_geometry(im,target,rect,output,clip,occluders=()):
|
|
require(im.size==(output.rectangle.width,output.rectangle.height),'replay-output-size')
|
|
visible=intersect(rect,clip) if clip else rect
|
|
expected=Image.new('L',im.size,0);draw=ImageDraw.Draw(expected)
|
|
box=to_png(visible,output)
|
|
if box.width and box.height:draw.rectangle((box.x,box.y,box.end[0]-1,box.end[1]-1),fill=255)
|
|
for occ in occluders:
|
|
ob=to_png(occ,output)
|
|
if ob.width and ob.height:draw.rectangle((ob.x,ob.y,ob.end[0]-1,ob.end[1]-1),fill=0)
|
|
actual=Image.new('L',im.size);actual.putdata([255 if px==COLORS[target] else 0 for px in im.get_flattened_data()])
|
|
require(ImageChops.difference(expected,actual).getbbox() is None,'replay-paint-'+target)
|
|
return dict(count=sum(actual.histogram()[1:]),bbox=actual.getbbox())
|