# راهنمای سادهٔ کدهای موجک فصل هفتم

این مجموعه با هدف **فهم پایه‌ای و دقیق** موجک ساخته شده است. هیچ دادهٔ بیرونی لازم ندارد. تصاویر آموزشی به‌طور کامل با کد تولید می‌شوند.

## فایل‌ها

- `chapter07_wavelet_core.py`: هار یک‌بعدی/دوبعدی، معکوس، چندسطحی، اسکالوگرام ساده و حذف نویز. فقط به NumPy وابسته است.
- `chapter07_quick_demo.py`: آزمون سریع هار، بازسازی و حذف نویز؛ فقط به NumPy وابسته است.
- `chapter07_generate_figures.py`: همهٔ ۲۶ تصویر اصلی فصل را از نو تولید می‌کند (NumPy + Matplotlib).
- `chapter07_examples.ipynb`: دفترچهٔ آموزشی گام‌به‌گام، شامل شکل‌ها و کنترل خطا.
- `requirements.txt`: وابستگی‌های اصلی.

## اجرا با Python

در پوشهٔ شامل فایل‌ها:

```bash
python -m pip install numpy matplotlib notebook
python chapter07_quick_demo.py
python chapter07_generate_figures.py --output figures
jupyter notebook chapter07_examples.ipynb
```

نصب تنها زمانی لازم است که پکیج‌ها از قبل موجود نباشند. کدها هیچ فایل اصلیِ سایت را دست‌کاری نمی‌کنند. همهٔ تصویرهای خروجی در پوشه‌ای که مشخص می‌کنید ساخته می‌شوند.

## انتظار عددی

برای `[4,6,8,10]`، تقریب سطح دوم برابر `14` و جزئیات سطح دوم برابر `-4` هستند. انرژی ورودی `216` است؛ انرژی ضرایب نیز `216` می‌شود. در تبدیل دوبعدی هار، بدون تغییر ضرایب، خطای بازسازی باید در حد دقت محاسبات شناور باشد.

## محدودیت‌های آگاهانه

- موجک **هار** برای شفافیت محاسبات انتخاب شده، نه اینکه در همهٔ مسائل بهترین باشد.
- تصویر باید در هر سطح دارای ابعاد زوج باشد؛ در این کد آموزشی padding خودکار نداریم.
- تابع CWT یک پیاده‌سازی آموزشی با موجک مکزیکیِ نمونه‌برداری‌شده و حاصل‌ضرب/کانولوشن مستقیم است، نه پیاده‌سازی عمومی معکوس CWT.
- خروجی حذف نویز ممکن است روی تصاویر دیگر اثر مخرب داشته باشد؛ برای استفادهٔ تخصصی اعتبارسنجی لازم است.
- صفرکردن ضرایب کوچک به معنی محاسبهٔ **حجم فایل فشرده** نیست و پیاده‌سازی JPEG 2000 هم در این بسته وجود ندارد.

## کنترل پیش از Push به سایت

این ZIP فایل CMD/BAT یا تنظیمات سایت ندارد. پس از ورود فصل با One-Click موجود، لازم است سازوکار Pre-Push Prettier خود سایت روی **تمام فایل‌های متنی تغییرکرده**، از جمله `chapter-07.md` و فایل‌های YAML فهرست و متادیتا، اجرا شود. تنظیم پروژه از Prettier نسخهٔ `3.1.1` و افزونهٔ `@shopify/prettier-plugin-liquid` نسخهٔ `1.4.0` استفاده می‌کند. این کار باید روی فایل‌های نهایی داخل مخزن انجام شود، نه فقط روی Markdown اولیهٔ ZIP.
