|
Download IMAGES.md from ubern-introimage/sampling-quantization: direct link, hf CLI and curl.
- Browser
- Download file 4.9 kB
-
https://huggingface.co/spaces/ubern-introimage/sampling-quantization/resolve/main/IMAGES.md
- Command line
-
hf download hf://spaces/ubern-introimage/sampling-quantization/IMAGES.md
-
curl -L -o IMAGES.md https://huggingface.co/spaces/ubern-introimage/sampling-quantization/resolve/main/IMAGES.md
4.9 kB
| # Sample Images Guide | |
| The demo can work with any image, but here are some recommendations for educational purposes. | |
| ## Using Your Own Images | |
| ### Option 1: Upload at Runtime (Recommended for Users) | |
| The simplest way is to use the **file uploader** in the sidebar. Users can upload their own images to experiment with. | |
| **Supported formats:** PNG, JPG, JPEG | |
| **Recommendations:** | |
| - Images with gradients (to show posterization) | |
| - Images with fine details (to show pixelation) | |
| - Images with sharp edges (to show JPEG artifacts) | |
| - Natural photos vs. graphics/screenshots | |
| ### Option 2: Use HuggingFace Dataset (Recommended for Deployment) | |
| If you want a default image always available, use a HuggingFace dataset: | |
| 1. **Create a dataset on HuggingFace:** | |
| - Go to https://huggingface.co/new-dataset | |
| - Upload your images | |
| - Make it public | |
| 2. **Update `app.py`:** | |
| ```python | |
| image_path = hf_hub_download( | |
| repo_id="your-username/your-dataset-name", | |
| filename="your-image.jpg", | |
| repo_type="dataset", | |
| ) | |
| ``` | |
| ### Option 3: Bundle with Repository | |
| For local development, you can include images in the repository: | |
| 1. **Create a directory:** | |
| ```bash | |
| mkdir sample_images | |
| ``` | |
| 2. **Add images to `.gitignore` if they're large:** | |
| ``` | |
| sample_images/*.jpg | |
| sample_images/*.png | |
| ``` | |
| 3. **Update `app.py`:** | |
| ```python | |
| img = cv.imread('sample_images/your-image.jpg') | |
| img = cv.cvtColor(img, cv.COLOR_BGR2RGB) | |
| ``` | |
| ## Recommended Image Types | |
| ### For Demonstrating Sampling (Pixelation) | |
| **Good choices:** | |
| - **Text documents or signs** - shows when text becomes unreadable | |
| - **Portraits** - shows loss of facial detail | |
| - **Architectural photos** - shows loss of fine lines and edges | |
| - **Natural scenes** - shows overall degradation | |
| **Characteristics:** | |
| - High resolution (512x512 or larger) | |
| - Clear details at different scales | |
| - Mix of fine and coarse features | |
| ### For Demonstrating Quantization (Bit Depth) | |
| **Good choices:** | |
| - **Sunset/sunrise photos** - smooth color gradients | |
| - **Blue sky** - shows banding clearly | |
| - **Gradients** - artificial gradients work great | |
| - **Portraits** - shows posterization in skin tones | |
| **Characteristics:** | |
| - Smooth color transitions | |
| - Wide tonal range | |
| - Subtle color variations | |
| ### For Demonstrating JPEG Artifacts | |
| **Good choices:** | |
| - **Graphics with solid colors** - shows blocking clearly | |
| - **Screenshots with text** - compression artifacts around text | |
| - **High-contrast edges** - ringing artifacts | |
| - **Patterns** - mosquito noise | |
| **Characteristics:** | |
| - Sharp edges | |
| - Solid color areas | |
| - High contrast regions | |
| - Fine patterns or textures | |
| ## Sample Image Sources | |
| ### Free Stock Photos (Educational Use) | |
| - **Unsplash**: https://unsplash.com/ (free license) | |
| - **Pexels**: https://www.pexels.com/ (free license) | |
| - **Pixabay**: https://pixabay.com/ (free license) | |
| ### Scientific Image Datasets | |
| - **USC-SIPI Image Database**: http://sipi.usc.edu/database/ | |
| - Standard test images used in image processing research | |
| - Includes "Lena", "Peppers", "Airplane", etc. | |
| - **ImageNet**: https://image-net.org/ | |
| - Massive dataset, but you only need a few samples | |
| ### Creating Your Own Test Images | |
| Use Python to generate test images with specific properties: | |
| ```python | |
| import numpy as np | |
| import cv2 as cv | |
| # Gradient image (good for quantization demo) | |
| gradient = np.zeros((512, 512, 3), dtype=np.uint8) | |
| for i in range(512): | |
| gradient[i, :, :] = int(255 * i / 512) | |
| cv.imwrite('gradient.png', gradient) | |
| # Pattern image (good for JPEG artifacts demo) | |
| pattern = np.zeros((512, 512, 3), dtype=np.uint8) | |
| pattern[::8, :] = 255 # Horizontal lines | |
| pattern[:, ::8] = 255 # Vertical lines | |
| cv.imwrite('pattern.png', pattern) | |
| # Noise image (good for compression comparison) | |
| noise = np.random.randint(0, 256, (512, 512, 3), dtype=np.uint8) | |
| cv.imwrite('noise.png', noise) | |
| ``` | |
| ## Image Guidelines | |
| For best educational results: | |
| 1. **Size**: 512x512 or similar (not too large, loads faster) | |
| 2. **Format**: PNG for original (lossless) | |
| 3. **Content**: Clear subject matter, recognizable features | |
| 4. **Variety**: Have different types available for different concepts | |
| 5. **Rights**: Ensure you have permission to use/distribute | |
| ## Current Implementation | |
| The app currently: | |
| 1. **Tries to download** from HuggingFace (if configured) | |
| 2. **Falls back** to a generated sample image with: | |
| - Color gradients | |
| - Geometric shapes | |
| - Text | |
| 3. **Allows upload** via sidebar | |
| This ensures the demo works even without internet access or external dependencies. | |
| ## Testing Your Images | |
| Before using an image in production, test: | |
| - Does it load quickly? | |
| - Are effects visible at different sampling rates? | |
| - Does quantization create noticeable banding? | |
| - Are JPEG artifacts visible at low quality? | |
| - Is the file size reasonable (<5MB)? | |
| ## Need Help? | |
| For questions about image preparation or integration, open an issue on GitHub. | |