OpenCV`nin görüntülerle çalışmak için yaygın olarak kullanıldığını ve bunun için çok çeşitli işlevlere sahip olduğunu biliyoruz. Ama ya görüntü dosyalarını OpenCV gibi herhangi bir harici kitaplık kullanmadan işlemek istiyorsak. Bunu nasıl yapabileceğimize bir bakalım.
Görüntü ölçekleme (en yakın komşu enterpolasyonu kullanılarak):
En yakın komşu enterpolasyonu — enterpolasyon yapmanın en kolay yolu budur. Bu yöntem basitçe "en yakın" komşu pikseli belirler ve yoğunluğu için bir değer alır.
Genişliği w ve yüksekliği — p > m ve q > n. Şimdi iki ölçekleme sabitine ihtiyacımız var:
scale_x = p / w scale_y = q / h
Artık çıktı görüntüsündeki tüm pikselleri yineliyoruz, orijinal piksellere atıfta bulunuyoruz. dan kopyalıyorlar. kontrol değişkenlerimizi scale_x ve scale_y ile ölçeklendirme ve elde edilen ölçeklenmiş indeks değerlerini yuvarlama.
Görsel temsil:
Görüntü 3X3 pikseldir (toplam 9 piksel), şimdi görüntü boyutunu 6X6`ya çıkarmak istiyorsak, en yakın komşu algoritmaya göre 6/3 (yani 2) piksel, değer pikseli ile aynı RGB değerine sahip olmalıdır. orijinal görüntüye.
Görüntü ölçekleme programı:
Çıktı: Görüntüyü gri tonlama:Ortalamayı kullanma değer yönteminde, bu yöntem, RGB değerlerinin nelerden oluştuğunu göstermekten ziyade bir pikselin yoğunluğunu vurgular. Ortalama RGB değerini hesaplayıp bir piksel için RGB değerini atadığımızda, pikselin RGB değeri aynı olduğu için tüm renkler farklı bir RGB oranı nedeniyle üretildiğinden herhangi bir renk oluşturamayacaktır. değerler, çünkü bu durumda oran 1: 1: 1 olacaktır. Bu nedenle, oluşturulan görüntü gri bir görüntü gibi görünecektir. Görsel temsil: ![]() Gri tonlamalı resim programı:
< kod sınıfı = "anahtar kelime"> için
|
Çıktı:
Görüntüyü kırpma:
Kırpma temelde kaldırır istenmeyen piksel.Bu, gerekli pikseli, kırpıldıktan sonra boyutu gerekli olanla eşleşen başka bir resim ızgarasına yerleştirerek yapılabilir.
10 √ó 10 piksel boyutunda bir resim düşünün ve eğer sadece 4 √ó 4 piksel boyutunda bir görüntünün merkezini kırpmak istiyoruz, o zaman (3, 3)`ten başlayarak 4 piksele kadar ‚Äã‚Äã`dan (10-4) / 2 piksel değerlerini toplamamız gerekiyor x yönünde ve 4 piksel y yönünde.
Görsel gösterim:
Resim kırpıcı:
# matplotlib ve numpy kullanarak
import
matplotlib.image img olarak
import
npy olarak numpy
# m değişkeninde görüntü oku
m
=
img.imread (
"taj.png"
)
# görüntü boyutunun tanımı genişlik (w) yükseklik (h)
w, h
2
]
# kırpıldıktan sonra gerekli resim boyutu
xNew
=
int
(w
*
1
/
=
int
(h
*
1
/
4
)
newImage
=
npy.zeros ([xNew, yNew,
4
])
# yazdırma genişliği kaynak resim yüksekliği
yazdır
için
i
için j
, yNew):
newImage [i, j]
=
m [
+
j]
# resmi kaydet
img.imsave (
`cropped.png`
, newImage)
Çıktı: