Wir wissen, dass OpenCV für die Arbeit mit Bildern weit verbreitet ist und dafür eine Vielzahl von Funktionen bietet. Aber was ist, wenn wir Bilddateien verarbeiten möchten, ohne eine externe Bibliothek wie OpenCV zu verwenden? Sehen wir uns an, wie wir das machen können.
Bildskalierung (unter Verwendung der Nächster-Nachbar-Interpolation):
Nächste-Nachbar-Interpolation — Dies ist die einfachste Art zu interpolieren. Diese Methode bestimmt einfach das "nächste" benachbarte Pixel und nimmt einen Wert für seine Intensität.
Stellen Sie sich ein kleines Bild vor, dessen Breite w und dessen Höhe — h, dass wir von der Breite p auf die Breite q wechseln wollen, unter der Annahme, dass p > m und q > n. Jetzt brauchen wir zwei Skalierungskonstanten:
scale_x = p / w scale_y = q / h
Nun iterieren wir einfach über alle Pixel im Ausgabebild, wobei wir uns auf die Originalpixel beziehen kopieren von. Skalierung unserer Kontrollvariablen mit scale_x und scale_y und Rundung der resultierenden skalierten Indexwerte.
Visuelle Darstellung:
Das Bild hat 3X3 Pixel (insgesamt 9 Pixel), wenn wir nun die Bildgröße auf 6X6 erhöhen wollen, dann sollten nach dem nächstgelegenen Nachbaralgorithmus 6/3 (dh 2) Pixel den gleichen RGB-Wert wie das Wertpixel haben zum Originalbild.
Programm zur Bildskalierung:
Ausgabe: Grauskala des Bildes:Using the mean Value-Methode betont diese Methode die Intensität eines Pixels, anstatt zu zeigen, aus welchen RGB-Werten es besteht. Wenn wir den durchschnittlichen RGB-Wert berechnen und ihm den RGB-Wert für ein Pixel zuweisen, kann es keine Farbe erzeugen, da der RGB-Wert des Pixels gleich ist, da alle Farben aufgrund eines unterschiedlichen RGB-Verhältnisses erzeugt werden Werte, da in diesem Fall das Verhältnis 1: 1: 1 wäre. Daher sieht das gerenderte Bild wie ein graues Bild aus. Visuelle Darstellung: ![]() Graustufen-Bildprogramm:
|
Ausgabe:
Zuschneiden eines Bildes:
Zuschneiden entfernt im Wesentlichen unerwünschtes Pixel. Dies kann erreicht werden, indem das erforderliche Pixel in einem anderen Bildraster platziert wird, dessen Größe nach dem Zuschneiden der erforderlichen entspricht.
Betrachten Sie ein Bild mit einer Größe von 10 √ó 10 Pixel, und wenn wir wollen nur die Mitte eines Bildes mit einer Größe von 4 √ó 4 Pixeln beschneiden, dann müssen wir Pixelwerte ‚Äã‚Äã von (10-4) / 2, beginnend bei (3, 3) bis zu 4 Pixeln sammeln in x-Richtung und 4 Pixel in y-Richtung.
Visuelle Darstellung:
Bildbeschneidung:
# matplotlib und numpy verwenden
import
matplotlib.image as img
import
numpy as npy
# Bild in Variable lesen m
m
=
img.imread (
"taj.png"
)
# Definition der Bildgröße Breite (w) Höhe (h)
w, h
=
m.form [:
2
]
# Erforderliche Bildgröße nach dem Zuschneiden
xNew
=
int
(w
*
1
/
4
)
yNew
=
int
(h
*
1
/
4
)
newImage
=
npy.zeros ([xNeu, yNeu,
4
])
# Druckbreite Quellbildhöhe
print
(w)
print
(h)
für
i
im
Bereich
(
1
, xNew):
for
j
im
Bereich
(
1
, yNew):
# Zuschneiden von 100 auf 100 Pixel des Originalbildes
newImage [i, j]
=
m [
100
+
i,
100
+
j]
# Bild speichern
img.imsave (
`cropped.png`
, newImage)
Ausgabe: