File size: 1,565 Bytes
bf7dfcc |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
import requests
from pathlib import Path
def test_endpoint(image_path, point_coords=None, point_labels=None):
# URL for local Flask server
url = "http://localhost:5000/predict"
# Open image file
with open(image_path, 'rb') as f:
files = {'file': f}
data = {}
# Add point prompts if provided
if point_coords is not None and point_labels is not None:
data['point_coords'] = str(point_coords)
data['point_labels'] = str(point_labels)
# Make request
response = requests.post(url, files=files, data=data)
print(f"Status Code: {response.status_code}")
if response.status_code == 200:
result = response.json()
print("\nSuccess!")
print(f"Number of masks: {len(result['masks']) if 'masks' in result else 0}")
print(f"Scores: {result['scores'] if 'scores' in result else None}")
else:
print(f"Error: {response.text}")
if __name__ == "__main__":
# Test with your image
image_path = Path("images/20250121_gauge_0001.jpg")
if not image_path.exists():
print(f"Error: Image not found at {image_path}")
exit(1)
# Test without points
print("\nTesting without points...")
print(f"Testing with image: {image_path}")
test_endpoint(image_path)
# Test with points
print("\nTesting with points...")
test_endpoint(
image_path,
point_coords=[[500, 375]], # Example coordinates
point_labels=[1] # 1 for foreground
) |