- 1. MATLAB Editör Penceresini kullanarak Görüntü İşleme
- 2. MATLAB GUI ile Görüntü İşleme
- Görüntü İşleme için MATLAB Grafik Kullanıcı Arayüzü Oluşturma
- Görüntü İşleme için MATLAB GUI Kodu
- Görüntü İşleme için MATLAB GUI kodunu çalıştırın
Kameranızı bir nesneye doğrultduğunuzu ve kamera size o nesnenin adını söylediğini hayal edin, evet, Android akıllı telefonlarda Google Lens , Görüntü İşleme kullanarak aynı şeyi yapıyor. Bu, bilgisayara nesneleri algılayıp tanımak ve buna göre eylemler yapmak için bir vizyon verir. Görüntü işleme, Yüz algılama ve tanıma, başparmak izlenimi, artırılmış gerçeklik, OCR, Barkod taraması ve daha pek çok uygulamaya sahiptir. Görüntü işleme için pek çok yazılım vardır, bunların arasında MATLAB başlamak için en uygun olanıdır.
MATLAB birçok gelişmiş görüntü işleme işlemini gerçekleştirebilir, ancak MATLAB'de Görüntü işlemeye başlamak için, burada RGB'den Griye, görüntüyü döndürme, ikili dönüştürme gibi bazı temel işlemleri açıklayacağız. Ayrıca gürültü giderme, görüntü için otomatik programlar yapabilirsiniz. netlik, bu eğitimde açıklanan işlevleri kullanarak filtreleme.
Daha fazla ilerlemeden önce, MATLAB'da yeniyseniz, daha iyi anlaşılması için önceki MATLAB eğitimlerimizi inceleyebilirsiniz:
- MATLAB ile Başlarken: Hızlı Bir Giriş
- MATLAB ile Arduino'nun Arayüzü - Yanıp Sönen LED
- MATLAB ve Arduino Kullanarak DC Motor Kontrolü
- MATLAB ve Arduino kullanarak Step Motor Kontrolü
- MATLAB kullanarak Gerçek Zamanlı Sıcaklık Grafiği Nasıl Çizilir
MATLAB'de, her zaman olduğu gibi, herhangi bir görüntü işleme algoritmasını gerçekleştirmenin iki yolu vardır, biri doğrudan editör / komut penceresine komutu girerek, diğeri de bunun için bir GUI oluşturarak. Burada, MATLAB'da görüntü işlemenin temel işlemlerini gerçekleştirmek için her iki yöntemi de göstereceğiz.
1. MATLAB Editör Penceresini kullanarak Görüntü İşleme
Şimdi, editör penceresinde görüntü işlemenin bazı temel işlemlerini gerçekleştirmek için kod yazacağız. MATLAB'da kullanılan tüm temel terminolojiye aşina olmak için bağlantıyı takip edin. Aşağıdaki kodu düzenleyici penceresine kopyalayıp yapıştırın, a = imread ('F: \ devre özeti \ matlab \ camerman.jpg kullanarak görüntü işleme'); alt grafik (2,3,1); imshow (a); b = rgb2gray (a); alt plan (2,3,2); imshow (b); c = im2bw (a); alt plan (2,3,3); imshow (c); d = uyumsuz (b); alt plan (2,3,4); imshow (d); e = a; e = rgb2gray (e); alt plan (2,3,5); imhist (e); imfinfo ('F: \ devre özeti \ matlab \ sakal-man.jpg kullanarak görüntü işleme') = size (a) % colormap ('yay')
'A' değişkeninde, imread ('dosya adı') komutunu kullanarak görüntüyü içe aktarıyoruz ve ardından alt grafiği (satır, sütun, konum) kullanarak '2' satır ve '3' sütunun bir grafiğini yapıyor ve içe aktarılan görüntüyü pozisyonda görüntülüyoruz. 1 '. Görüntüyü göstermek için imshow ('dosya adı') komutunu kullanıyoruz.
Aşağıda, yüklenen görüntü üzerinde bazı temel işlemleri gerçekleştirmek için birkaç komut verilmiştir:
- 'B' değişkeninde, rgb2gray ('dosya adı') komutunu kullanarak RGB görüntüsünü gri tonlamalı yoğunluk görüntüsüne dönüştürüyoruz ve bunu '2' konumundaki grafikte gösteriyoruz.
- 'C' değişkeninde, görüntüyü ikili görüntüye dönüştürüyoruz veya im2bw ('dosya adı') komutunu kullanarak ve onu grafikte görüntüleyerek '0' (siyah) ve '1' (beyaz) formatında söyleyebilirsiniz. pozisyon '3'.
- 'D' değişkeninde, imadjust ('dosya adı') komutunu kullanarak gri tonlamalı görüntü yoğunluğu değerlerini ayarlıyor veya eşleştiriyoruz ve bunu '4' konumundaki grafikte görüntülüyoruz.
- 'E' değişkeninde, imhist ('dosya adı') komutunu kullanarak gri tonlamalı görüntünün histogramını çiziyoruz ve onu '5' konumundaki grafikte görüntülüyoruz. Histogramı çizmek için her zaman görüntüyü gri tonlamaya dönüştürmeniz gerekir ve ardından o grafik dosyasının histogramını görebilirsiniz.
- Imfinfo ('konumlu dosya adı') komutu, grafik dosyayla ilgili bilgileri görüntülemek için kullanılır.
- = size ('dosya adı') komutu, belirli bir grafik dosyasının boyutunu ve renk düzlemlerini görüntülemek için kullanılır.
- colormap ('yay') , grafik dosyasının renk haritasının türünü değiştirmek için kullanılır. Burada kodumda bu komutu yorum olarak ayarlıyorum ancak yüzde işaretini kaldırarak kullanabilirsiniz. MATLAB'da Jet, HSV, Sıcak, Soğuk, Yaz, Sonbahar, Kış, Gri, Kemik, Bakır, Pembe, Çizgiler ve İlkbahar gibi birçok renk türü vardır.
Bunlar gibi MATLAB'da farklı görevleri gerçekleştirmek için kullanılabilecek çok sayıda komut vardır, MATLAB'daki görüntü işleme fonksiyonlarını bağlantıyı takip ederek kontrol edebilirsiniz.
2. MATLAB GUI ile Görüntü İşleme
Görüntü İşleme için MATLAB Grafik Kullanıcı Arayüzü Oluşturma
Görüntü İşleme için bir GUI (Grafik Kullanıcı Arayüzü) oluşturmak için, komut penceresine aşağıdaki komutu yazarak GUI'yi başlatın.
kılavuz
Bir açılır pencere açılacak, ardından aşağıdaki resimde gösterildiği gibi yeni boş GUI seçin,
Şimdi, görüntüyü görüntülemek için bir adet buton (her buton farklı görev gerçekleştirecektir) ve bir eksen seçmeliyiz.
Düğmenin veya Eksenlerin şeklini yeniden boyutlandırmak veya değiştirmek için, sadece üzerine tıklayın ve düğmenin köşelerini sürükleyebilirsiniz. Bunlardan herhangi birine çift tıklayarak, o belirli düğmenin rengini, dizisini, etiketini ve diğer seçeneklerini değiştirebileceksiniz. Özelleştirmeden sonra şöyle görünecek
Düğmeleri tercihinize göre özelleştirebilirsiniz. Şimdi bunu kaydettiğinizde, MATLAB'ın Editör penceresinde bir kod üretilir. Görevi farklı butonlar için ayarlamak üzere oluşturulan kodu düzenleyin. Aşağıda MATLAB kodunu düzenledik.
Görüntü İşleme için MATLAB GUI Kodu
MATLAB GUI kullanarak Görüntü İşleme için tam MATLAB kodu bu projenin sonunda verilmiştir. Ayrıca, indirilmek üzere GUI dosyasını (.fig) ve kod dosyasını (.m) buraya ekliyoruz, bunu kullanarak, düğmelerinizi veya Eksen boyutunu ihtiyacınıza göre özelleştirebilirsiniz. Oluşturulan kodu aşağıda açıklandığı gibi düzenledik.
Dosyayı PC'den eklemek için 'uploadimage' işlevinde aşağıdaki kodu kopyalayıp yapıştırın. Burada, uigetfile komutu ('görüntü uzantısı türü') , MATLAB GUI'ye görüntüyü içe aktarmak için kullanılır. Bu dosyayı imread () komutunu kullanarak okuyun ve ardından axes (handles.axes1) kullanarak axes1 üzerinde imshow () komutuyla görüntüleyin. Şimdi, setappdata () komutuyla, değişkeni GUI'de saklayın, böylece değişken GUI'nin bir kısmından GUI'nin diğer kısmına erişebilir.
a = uigetfile ('. jpg') a = imread (a); eksenler (handles.axes1); imshow (a); setappdata (0, 'a', a)
Artık her işlevinde komut göreceksiniz getappdata () kullanılarak depolanan veri almak için kullanılan setappdata GUI ().
Burada , görüntü işlemede yaygın olarak kullanılan sekiz işlevi açıklayacağız
S. No. |
Komut |
Düğme Adı |
Gerçekleştirilecek Görev |
1. |
uigetfile () |
Fotoğraf yükleniyor |
Diskten görüntü almak için tıklayın |
2. |
rgb2gray () |
RGB'den Griye |
RGB görüntüsünü gri tonlamaya dönüştürmek için tıklayın |
3. |
im2bw () |
İkili Görüntüye Dönüştür |
Görüntüyü ikiliye dönüştürmek için tıklayın |
4. |
- |
SIFIRLA |
Resmi orijinal olarak sıfırlamak için tıklayın |
5. |
imhist () |
Histogram |
Görüntünün histogramını görmek için tıklayın |
6. |
uygulama () |
Tamamlayıcı Resim |
Tamamlayıcı resmi kontrol etmek için tıklayın |
7. |
kenar (dosya adı, yöntem) |
Kenar algılama |
Görüntüdeki kenarları tespit etmek için tıklayın |
8. |
imrotate (dosya adı, açı) |
Saat Yönünde Döndür |
Resmi saat yönünde döndürmek için tıklayın |
9. |
imrotate (dosya adı, açı) |
Saat Yönünün Tersine Döndür |
Resmi saat yönünün tersine döndürmek için tıklayın |
1. RGB görüntüsünü gri tonlamaya dönüştürün
In 'rgb2gray' fonksiyonu, kopyalama ve kodunun altına yapıştırın gri ölçek RGB görüntüyü dönüştürmek komut kullanarak ) (rgb2gray .
a = getappdata (0, 'a'); agray = rgb2gray (a); eksenler (handles.axes1); imshow (agray);
2. İkili Görüntüye Dönüştür
In 'im2bw' fonksiyonu, kopyalama ve kodunun altına yapıştırın ikili görüntü içine görüntüyü dönüştürmek ya formatında söyleyebiliriz '0' (siyah) ve '1' komutunu kullanarak (beyaz) im2bw () .
a = getappdata (0, 'a'); abw = im2bw (a); eksenler (handles.axes1); imshow (abw);
3. Orijinal Görüntüye Sıfırla
In 'reset' fonksiyonu, kopyalama ve kodunun altına yapıştırın orijinal resmin içine Düzenlenen görüntüyü sıfırlayın.
a = getappdata (0, 'a'); eksenler (handles.axes1); imshow (a);
4. Görüntü Histogramını Çizin
In 'histogram' fonksiyonu, kopyalama ve kodunun altına yapıştırın gri tonlama görüntünün histogramı çizmek komutunu kullanarak imhist ('dosya') ve üzerinde görüntülemek axes1 . Histogramı çizmek için her zaman görüntüyü gri tonlamaya dönüştürmeniz gerekir ve ardından o grafik dosyasının histogramını görebilirsiniz.
a = getappdata (0, 'a'); ahist = a; ahist = rgb2gray (ahist); eksenler (handles.axes1); imhist (ahist);
5. Tamamlayıcı Resme Dönüştür
In 'complementimage' fonksiyonu, kopyalama ve görmek kodunun altına yapıştırın sokulan grafik tamlayanını komutunu kullanarak dosyanın ) (imcomplement .
a = getappdata (0, 'a'); acomp = a; acomp = imcomplement (acomp); eksenler (handles.axes1); imshow (acomp);
6. Canny Yöntemi ile Kenar Algılama
Gelen 'kenar' fonksiyonu, kopyalama ve tespit etmek ve komutu kullanılarak gri tonlama Görüntüdeki kenarları bulmak için kod altında yapıştırma kenarı ('dosya', 'yöntem') . Yöntem yerine bu üçü, Canny, Prewitt ve montaj arasından seçim yapabilirsiniz. Kenar tespiti için Canny yöntemini kullanıyoruz. Ayrıca kenarı doğrudan orijinal görüntüden algılayamazsınız, önce onu gri tonlamaya dönüştürmeniz gerekir ve ardından kenarları algılayabilirsiniz.
a = getappdata (0, 'a'); aedge = a; aedge = rgb2gray (aedge); aedge = edge (aedge , 'Canny') ' eksenler (handles.axes1); imshow (aedge);
7. Görüntüyü Saat Yönünde Döndür
Gelen 'saat yönünde' fonksiyonu, kopyalama ve kod altında yapıştırmak saat yönünde görüntüyü döndürmek komutunu kullanarak imrotate (dosya, 'açısı')
a = getappdata (0, 'a'); aclock = a; aclock = imrotate (aclock, 270); eksenler (handles.axes1); imshow (aclock);
8. Görüntüyü Saat Yönünün Tersine Döndür
Gelen 'saat yönünün tersine' fonksiyonu, kopyalama ve kod altında yapıştırmak saat yönünün tersine yönde döndürmek komutunu kullanarak imrotate (dosya, 'açısı')
a = getappdata (0, 'a'); aclock = a; aclock = imrotate (aclock, 90); eksenler (handles.axes1); imshow (aclock);
Görüntü İşleme için MATLAB GUI kodunu çalıştırın
Şimdi, düzenlenen kodu.m dosyasında çalıştırmak için 'ÇALIŞTIR' düğmesine tıklayın
MATLAB'ın yanıt vermesi birkaç saniye sürebilir, MATLAB aşağıda gösterildiği gibi sol alt köşede meşgul mesajı gösterene kadar herhangi bir GUI düğmesine tıklamayın,
Her şey hazır olduğunda, 'Resmi Yükle' düğmesine tıklayarak resmi bilgisayardan içe aktarın. Artık herhangi bir butona tıklayarak resmi dönüştürebilir veya döndürebilirsiniz. Aşağıdaki tablo, herhangi bir belirli düğmenin tıklanmasıyla gerçekleştirdiğimiz görevi size gösterecektir:
Her düğmenin tıklanmasıyla elde edilen sonuç aşağıda gösterilecektir,
Her düğmenin tam olarak çalışması aşağıdaki Videoda gösterilmektedir.
MATHWORKS resmi sitesinden satın alabileceğiniz Görüntü İşleme Araç Kutusu ile ileri düzeyde görüntü işleme bile yapabilirsiniz, bazı ileri düzey işlemler aşağıda listelenmiştir:
- Geometrik işlemler
- İşlemleri engelle
- Doğrusal filtreleme ve filtre tasarımı
- Dönüşümler
- Görüntü analizi ve iyileştirme
- İkili görüntü işlemleri