{"id":116936,"recorded_at":"2026-10-26T14:40:10.448314Z","observed_at":"2026-10-26T14:40:10.448279Z","subject_kind":"source_record","subject":"x402_bazaar:https://medien.halowerk.com/v1/oss-opencv-external-contour-metrics","kind":"listing","method":"baseline/1","body":{"endpoints":[["x402","https://medien.halowerk.com/v1/oss-opencv-external-contour-metrics"]],"name":"HALOWERK Medien","owner_address":"0x2880edfff13100677bf97a3cbdf3bc34771c4e5e","raw":{"accepts":[{"amount":"2000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","assetTransferMethod":"eip3009","eip712Domain":{"chainId":8453,"name":"USD Coin","verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","version":"2"},"name":"USD Coin","network_name":"Base Mainnet","version":"2"},"maxTimeoutSeconds":300,"network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","scheme":"exact"}],"description":"Finds the external contours in a caller-supplied binary mask and reports, for each, its area, perimeter, centroid and bounding rectangle, plus the total foreground pixel count. The division of labour is deliberate: segmentation is a domain decision, so the mask comes from you and the measurement comes from here, which keeps the numbers reproducible and independent of any threshold this service might have chosen.","extensions":{"bazaar":{"info":{"input":{"bodyType":"json","exampleUrl":"https://medien.halowerk.com/v1/oss-opencv-external-contour-metrics/schema#/requestExample","method":"POST","schemaUrl":"https://medien.halowerk.com/v1/oss-opencv-external-contour-metrics/schema#/inputSchema","type":"http"},"output":{"example":{"operation":"external-contour-metrics","result":{"contours":[{"area":400,"bounding_box":[10,10,21,21],"centroid":[20,20],"perimeter":80,"vertex_count":4},{"area":200,"bounding_box":[50,10,21,21],"centroid":[56.66666666666666,16.666666666666664],"perimeter":68.28427124023438,"vertex_count":3}],"foreground_pixels":672,"warnings":["Only external contours are measured; holes are excluded. Polygon area differs from foreground-pixel count."]},"runtime_ms":0.795,"upstream":{"binary_sha256":"1fd4eb220f9986baa0ea0492cbcbedf85b868e792cbcac5f69e10d067a2f956c","components":["findContours","moments","contourArea","arcLength","boundingRect"],"numpy_version":"2.5.0","package_version":"4.13.0.92","project":"OpenCV","version":"4.13.0"}},"type":"json"}},"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":true,"properties":{"input":{"additionalProperties":true,"properties":{"bodyType":{"const":"json"},"exampleUrl":{"format":"uri","type":"string"},"method":{"const":"POST"},"schemaUrl":{"format":"uri","type":"string"},"type":{"const":"http"}},"required":["type","method","bodyType"],"type":"object"},"output":{"properties":{"example":{"additionalProperties":false,"properties":{"operation":{"const":"external-contour-metrics"},"result":{"additionalProperties":false,"properties":{"contours":{"items":{"additionalProperties":false,"properties":{"area":{"minimum":0,"type":"number"},"bounding_box":{"items":{"minimum":0,"type":"integer"},"maxItems":4,"minItems":4,"type":"array"},"centroid":{"anyOf":[{"items":{"type":"number"},"maxItems":2,"minItems":2,"type":"array"},{"type":"null"}]},"perimeter":{"minimum":0,"type":"number"},"vertex_count":{"minimum":1,"type":"integer"}},"required":["area","perimeter","centroid","bounding_box","vertex_count"],"type":"object"},"maxItems":128,"minItems":0,"type":"array"},"foreground_pixels":{"minimum":0,"type":"integer"},"warnings":{"items":{"maxLength":1024,"type":"string"},"maxItems":8,"minItems":1,"type":"array"}},"required":["contours","foreground_pixels","warnings"],"type":"object"},"runtime_ms":{"minimum":0,"type":"number"},"upstream":{"additionalProperties":false,"properties":{"binary_sha256":{"const":"1fd4eb220f9986baa0ea0492cbcbedf85b868e792cbcac5f69e10d067a2f956c"},"components":{"const":["findContours","moments","contourArea","arcLength","boundingRect"]},"numpy_version":{"const":"2.5.0"},"package_version":{"const":"4.13.0.92"},"project":{"const":"OpenCV"},"version":{"const":"4.13.0"}},"required":["project","version","package_version","binary_sha256","numpy_version","components"],"type":"object"}},"required":["operation","result","upstream","runtime_ms"],"type":"object"},"type":{"type":"string"}},"required":["type"],"type":"object"}},"required":["input"],"type":"object"}}},"lastUpdated":"2026-10-25T19:38:22.045Z","quality":{"l30DaysTotalCalls":2,"l30DaysUniquePayers":1,"lastCalledAt":"2026-10-25T19:38:21.598Z"},"resource":"https://medien.halowerk.com/v1/oss-opencv-external-contour-metrics","serviceName":"HALOWERK Medien","tags":["oss","opencv","p009"],"type":"http","x402Version":2},"source":"x402_bazaar","summary":"Finds the external contours in a caller-supplied binary mask and reports, for each, its area, perimeter, centroid and bounding rectangle, plus the total foreground pixel count. The division of labour is deliberate: segmentation is a domain decision, so the mask comes from you and the measurement comes from here, which keeps the numbers reproducible and independent of any threshold this service might have chosen."},"body_sha256":"b09bd6cc1092586860b57327abbbe0d167351fa7f25db876034a4e484dfce473","prev_id":null,"leaf":"0x611fb11ceb1d1e315b54e645018e789d625ec4ae0336821f486e798608066424","leaf_text":"{\"body\":\"b09bd6cc1092586860b57327abbbe0d167351fa7f25db876034a4e484dfce473\",\"id\":116936,\"kind\":\"listing\",\"method\":\"baseline/1\",\"observed_us\":1793025610448279,\"prev\":null,\"subject\":\"x402_bazaar:https://medien.halowerk.com/v1/oss-opencv-external-contour-metrics\",\"subject_kind\":\"source_record\"}","day":null,"proof":[]}