RawAnalyser : Des valeurs brutes aux graphiques de diagnostic
RawAnalyser est une ancienne expérience Python pour analyser écrêtage, canaux, gamma et vignettage. Le code expose ses hypothèses d’entrée, dont une taille de trame fixe et des régions choisies dans un fichier JSON.
Langages du dépôtPython 100%1
Parts calculées à partir des octets GitHub Linguist.
| Langage | % | Octets |
|---|---|---|
| Python | 101 536 |
Aperçu
Pourquoi il existe
Outil d'analyse de capteur photographique calculant histogrammes d'écrêtage et plage dynamique sur fichiers RAW.
Cas d’usage
Évaluation de capteurs et calibration d'exposition en photographie computationnelle.
Démarrage
Ces commandes viennent de la documentation du dépôt. Elles n’ont pas été exécutées pendant cette revue.
python RawAnalyser.py <pathfolder> <pointfile> --func <clipping,gamma,vignette,histogram,noHist,basic, default all> --bl <black level, default 1024> --vignette <pathvignette>python GUI.pypython RawPixel.pt input<file> x y --bitdepth <8,10,16,default 16>Références du dépôt
Extraits des guides du dépôt, dans leur langue d’origine. Les liens ouvrent la version du code consultée.
Prérequis et premier essai
Prerequisites
README.md
You need to have Python 2.7 installed and the following libraries:
- json
- time
- numpy
- scipy
- pyqt5
- argparse
- argcomplete
- watchdog
- logging
- colorama
- plotly
- matplotlib
Configuration et utilisation
Usage
README.md
- Run the RawAnalyser script:
- Start the GUI:
- Check the value of the pixel and the color with the bayer pattern:
Fonctions et composants 2
- Surveillance et disposition brute
- NewAnalyse réagit à la création d’un fichier, charge les coordonnées et lit des uint16. Le tableau devient une image de 1088 par 1928 pixels, ensuite écrite en TIFF. Ces dimensions sont imposées par le code, pas déduites du fichier.
- Régions et canaux
- L’analyse construit les matrices de recadrage et de référence grise avant de séparer les canaux par des indices fixes. Les graphiques et statistiques dépendent donc des régions et de la disposition supposée du capteur.
Architecture
Les composants et leurs liens restent lisibles en texte. Le diagramme ajoute une vue interactive.
- Trame brute et régions JSON
- Événement Watchdog
- Tableau uint16 redimensionné
- Extraction des régions et canaux
- TIFF et graphiques
Liens vérifiés dans le dépôt.
Mermaid Diagramme interactif (chargement à l’ouverture)
Vue générale des composants et des échanges vérifiés dans le dépôt.

flowchart LR
n0["Trame brute et régions JSON"]
n1["Événement Watchdog"]
n2["Tableau uint16 redimensionné"]
n3["Extraction des régions et canaux"]
n4["TIFF et graphiques"]
n0 --> n1
n1 --> n2
n2 --> n3
n3 --> n4
Version texte du diagramme
- Trame brute et régions JSON → Événement Watchdog
- Événement Watchdog → Tableau uint16 redimensionné
- Tableau uint16 redimensionné → Extraction des régions et canaux
- Extraction des régions et canaux → TIFF et graphiques
Suivre un parcours dans le code
Suivez np.fromfile puis reshape et comparez les limites de recadrage aux boucles de canaux. Un graphique plausible peut rester faux si les dimensions ou la disposition Bayer diffèrent des hypothèses fixes.
Types et structure des fichiers
3 types déclarés, dont 3 dans l’aperçu des relations de base.
Diagramme des types
classDiagram
direction TB
class t67aaaf89d49b["MenuFile"] {
__init__()
Menu()
showDialog()
}
class t2831ebc76ef2["FormWidget"] {
__init__()
UI()
eventFilter()
getPos()
}
class tbf7f85dbbc2d["NewAnalyse"] {
on_created()
}
class bc56111853d56["QMainWindow"] {
<<unresolved_base>>
}
bc56111853d56 <|-- t67aaaf89d49b
class b8e0cc8fba905["QWidget"] {
<<unresolved_base>>
}
b8e0cc8fba905 <|-- t2831ebc76ef2
class b5c54f16f78bf["FileSystemEventHandler"] {
<<unresolved_base>>
}
b5c54f16f78bf <|-- tbf7f85dbbc2d
Les bases non résolues restent identifiées; les signatures complètes ne sont pas reconstruites.
Index des types
MenuFile(class) ·GUI.py:17Méthodes dans l’aperçu :
__init__, Menu, showDialog.Bases déclarées :
QMainWindow.FormWidget(class) ·GUI.py:42Méthodes dans l’aperçu :
__init__, UI, eventFilter, getPos.Bases déclarées :
QWidget.NewAnalyse(class) ·RawAnalyser.py:56Méthodes dans l’aperçu :
on_created.Bases déclarées :
FileSystemEventHandler.
Référence
8 / 8 fichiers admissibles lus (65 dans l’arbre); 0 trop volumineux, 0 échec de lecture et 0 diagnostic de syntaxe.
Ce que couvre l’analyse
Les dossiers connus de dépendances et de compilation, les fichiers d’identifiants et les binaires sont exclus. La collecte couvre les README, les manifestes reconnus et les fichiers source pris en charge.
Les statistiques Linguist couvrent l’ensemble du dépôt et peuvent inclure d’autres langages.
Carte des fichiers
flowchart TD
root["RawAnalyser"]
f0["GUI.py"]
root --> f0
f1["RawAnalyser.py"]
root --> f1
f2["RawPixel.py"]
root --> f2
f3["20MPto5MP.py"]
root --> f3
f4["README.md"]
root --> f4
f5["Raw2Tiff.py"]
root --> f5
f6["RawAnalyserNew.py"]
root --> f6
f7["requirements.txt"]
root --> f7