| R - Einführung in Datenverarbeitung (Teil 2) mit Analyse (Stefan Bosse) [11.2025] |
Wir verwenden hier Pakete math, plot, pca. Ggfs. in einem Snippet mittels use einbinden. Rechts unten gibt es den ChatBot für eine R+ Hilfe.
Zweidimensionale Daten werden häufig in Matrizen oder Arrays organisiert und gespeichert. Eine matrix besteht aus Zeilen und Spalten, ein Array kann beliebig viele Dimensionen besitzen.
Bilder können in verschiedenen Formaten vorliegen:
Es gibt verschiedene Merkmale von Bilder, i.A. statistische Art:
Lese "Learning R Programming" Kun Ren,2023
Lese Modul A, Abschnitt "Einführung in die R(+) Programmiersprache".
Lese "Vorverarbeitung und Bildverbesserung", F. Puente León, KIT, 2016
|
▸
[] |
✗
≡
|
Ein Histogramm gibt die Intensitätsverteilung eines Bildes an. Diese ist eine Häufigkeit (Pixelwerte) von Intensitäten in diskreten Intervallen (bins).
|
▸
[] |
✗
≡
|
Die Histogramm Funktion gehört zum plot Package, kann aber mit der plot=FALSE Option auch eine Liste u.A. mit der Dichteverteitlung (Vektor) zurück geben.
Neben skalare Aggegaten könne auch Profile von Bildern ermittelt werden. Besonders wichtig sind horizontale und vertikale Profillinien eines Bildes, um z.B. danach eine Intensisätshomogenisierung (gleichmäßige Beleuchtung) durchzuführen. Dabei kann man entweder eine Linie in horizontale oder vertikale Richtung entnehmen oder besser in die jeweils orthogonale Richtung integrieren (also Mittelwert):
function core::apply(
x:data.frame|matrix
MARGIN:number|vector
FUN:function|string
keep.type?:boolean=false) => vector|matrix
Choices:
MARGIN=1|2|[1,2]
Apply takes data frame or matrix as an input and gives output in vector or matrix.
MARGIN:
1:iterate over rows and transpose (function(vector))
2:iterate over columns (function(vector)),
[1,2]: iterate over cells (function (*)).
Row names: given by FUN result.
|
▸
[] |
✗
≡
|
Will man mit den Profilen Beleuchtungsinhomogenitäten in Bildern beseitigen sind diese rohen Profile nicht gut geeignet da sie auch die Bildmerkmale enthalten, d.h. z.B. Intensitätsschwankungen in Röntgenbidlern durch Fremdeinschlüsse oder Poren.
|
▸
[] |
✗
≡
|
draw.gaussian erzeugt eine gaussförmige Beluchtungsinhomogenität die multiplikatib auf das Originalbild angewendet wirdapply(..) berechnet die Profile durch orthogonale Integration der Intensitäten (liefert Vektor)signal::filter wendet einen einfachen Mittelwertfilter auf die Profilvektoren anreshape korrigiert durch lineare Interpolation den durch die Filterung geschrumpften Vektor und expandiert iweder auf 100 Elementematrix(v,..,byrow) erzeugt durch repitierende Einfügung des Vektors v entweder zeilen- oder spaltenweise eine Korrekturmatrix, die dann noch mit den Extremwerten des jeweiligen Profils korrigiert wird.Eine radiale Intensiätsinhomogenität kann mit der getrennten Linearisierung mit horizotntalen und vertikalen Profilen nicht flächug richtig kompensiert werden!
Frage 1. Welche Funktion müsste man anstelle von Linien für eine solche Korrektur verwenden?
DATA: Variable dataImage0 Type: Binary DATA: Variable dataImage0R Type: Binary DATA: Variable dataImage2000 Type: Binary DATA: Variable dataImage2000R Type: Binary DATA: Variable dataImage10000 Type: Binary DATA: Variable dataImage10000R Type: Binary DATA: Variable dataImage20000 Type: Binary DATA: Variable dataImage20000R Type: Binary
|
▸
[] |
✗
≡
|
Aufgabe 2. Ergänze die Datentabelle mit den Spalten mean, sd, median sowie min und max. Diese sollen für jedes Bild die statische Analyse der Bilder enthalten.
|
▸
[] |
✗
≡
|
Aufgabe 3. Ergänze nun die Datentabelle mit den Spalten hp und vp. Diese sollen für jedes Bild die geglätteten h/v Profile enthalten.
|
▸
[] |
✗
≡
|
Aufgabe 4. Homogenisiere alle Bilder. Teste das Ergebnise durch einen Plot.
|
▸
[] |
✗
≡
|