# Submission Guide

## Overview
This competition challenges you to generate images that match **specific visual characteristics**. Your goal is to create images that closely match the target on a set of metrics.

## Target Metrics
Your generated images will be evaluated on these characteristics:

- **Brightness**: Overall luminance (0.0 to 1.0)
- **Saturation**: Color intensity (0.0 to 1.0)
- **Contrast**: Range of light and dark values (0.0 to 1.0)
- **Red Mean**: Average red channel value (0.0 to 1.0)
- **Green Mean**: Average green channel value (0.0 to 1.0)
- **Blue Mean**: Average blue channel value (0.0 to 1.0)

## How to Calculate Each Metric

### Brightness
```python
img_lab = cv2.cvtColor(img_uint8, cv2.COLOR_RGB2LAB)
brightness = np.mean(img_lab[:, :, 0]) / 255.0
```

### Saturation
```python
img_hsv = cv2.cvtColor(img_uint8, cv2.COLOR_RGB2HSV)
saturation = np.mean(img_hsv[:, :, 1]) / 255.0
```

### Contrast
```python
img_gray = cv2.cvtColor(img_uint8, cv2.COLOR_RGB2GRAY)
contrast = np.std(img_gray) / 128.0
```

### RGB Means
```python
red_mean = np.mean(image[:, :, 0])    # Already normalized [0,1]
green_mean = np.mean(image[:, :, 1])
blue_mean = np.mean(image[:, :, 2])
```

## Submission Format

### File Name
**Required**: `submission.csv`

### CSV Structure
```csv
ID,brightness,saturation,contrast,red_mean,green_mean,blue_mean
public_profile_1,0.4358,0.4265,0.4598,0.4420,0.3978,0.3105
private_profile_1,0.4358,0.4265,0.4598,0.4420,0.3978,0.3105
```

### Requirements
- **Headers**: Exact column names as shown above
- **IDs**: `public_profile_1` and `private_profile_1`
- **Values**: Float numbers with 4 decimal places recommended
- **No Index**: Save with `index=False`

### Example Code
```python
submission_df = pd.DataFrame({
    'ID': ['public_profile_1', 'private_profile_1'],
    'brightness': [0.4358, 0.4358],
    'saturation': [0.4265, 0.4265], 
    'contrast': [0.4598, 0.4598],
    'red_mean': [0.4420, 0.4420],
    'green_mean': [0.3978, 0.3978],
    'blue_mean': [0.3105, 0.3105]
})
submission_df.to_csv('submission.csv', index=False)
```