Aller au contenu

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.

Application et outils
  • Mis à jour
  • Python · 100%
Langages du dépôtPython 100%1

Parts calculées à partir des octets GitHub Linguist.

Langage%Octets
Python100%101 536

GitHub · README · Statistiques de langages

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.

README.md · Usage
python RawAnalyser.py <pathfolder> <pointfile> --func <clipping,gamma,vignette,histogram,noHist,basic, default all> --bl <black level, default 1024> --vignette <pathvignette>
README.md · Usage
python GUI.py
README.md · Usage
python 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
Lire les instructions complètes ↗
Configuration et utilisation

Usage

README.md

  1. Run the RawAnalyser script:
  2. Start the GUI:
  3. Check the value of the pixel and the color with the bayer pattern:
Lire les instructions complètes ↗
Documentation source

1 documents lus parmi 1 candidats.

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.

Contexte système Contexte
  1. Trame brute et régions JSON
  2. Événement Watchdog
  3. Tableau uint16 redimensionné
  4. Extraction des régions et canaux
  5. 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.

Vue statique de l’architecture de RawAnalyser
Aperçu statique. Le diagramme interactif le remplace après le chargement de Mermaid.
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:17

    Méthodes dans l’aperçu : __init__, Menu, showDialog.

    Bases déclarées : QMainWindow.

  • FormWidget (class) · GUI.py:42

    Méthodes dans l’aperçu : __init__, UI, eventFilter, getPos.

    Bases déclarées : QWidget.

  • NewAnalyse (class) · RawAnalyser.py:56

    Mé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

Fichiers à lire 3

Références