Merhabalar MATLAB Görüntü işleme üzerine bir sorum burada farklı renklerde bulunan dikdörtgenlerden oluşan bir resim bulunmakta , öncelikle bu resimdeki dikdörtgenleri bir birinden ayırıp detect edip , sonrasında ayırdığım her dikdörtgen için pixel değerlerini x-y koordinatları şeklinde bulmam gerekiyor , çok uzun araştırmalar ve denemeler yaptıktan sonra buraya yazmaya karar verdim. Yardımcı olursanız çok sevinirim görüntü işlemeye yeni başlayan biriyim.
Merhaba,
Sorduğunuz soru geniş olduğu için birkaç tavsiyede bulunacağım. İlerledikçe daha belirli sorularınıza daha net cevaplar vermeye çalışırız.
Eğer aynı resimde belirli tonda dikdörtgenleri inceleyecekseniz, imshow() komutu ile bu resmi Matlab üzerinde görüntüleyin ve data cursor kullanarak dikdörtgenlerin içindeki tonların RGB değerine bakın (ya da siyah-beyaz bakacaksanız bu tonda değerine). Sonra bu resimdeki piksellerin konumlarını istediğiniz tona sahip olup olmamasına göre 1 ya da 0 değerine sahip bir ikili (binary) matrise atayın. Bu ikili matristeki 1 ve 0 değerleri sadece siyah ve beyazdan oluşan bir görüntü verecektir. Bundan sonra, regionprops() fonksiyonu ile siyah/beyaz alanın çeşitli özelliklerini hesaplayabilirsiniz. Aşağıdaki sayfada aradığınıza yönelik örnekler/seçenekler var gibi görünüyor:
https://www.mathworks.com/help/images/ref/regionprops.html
merhabalar data curso kullanımı hakkında yardıma ihtiyacım var. matlab sitesinde
fig = figure; z = peaks; plot(z(:,30:35)) dcm_obj = datacursormode(fig); set(dcm_obj,'DisplayStyle','datatip',... 'SnapToDataVertex','off','Enable','on') disp('Click line to display a data tip, then press Return.') % Wait while the user does this. pause c_info = getCursorInfo(dcm_obj); % Make selected line wider set(c_info.Target,'LineWidth',2)
bu kodları gördüm ve çalıştırdığımda internetteki aynı görüntü ekrana geldi , hangi kısımı kendi bilgilerim doğrultusunda değiştirmem gerektiğini anlayamadım. Yardımcı olursanız sevinirim
Data cursor için herhangi bir kod kullanımı gerekmiyor. Figür penceresinde data cursor seçeneği var. https://www.mathworks.com/help/matlab/ref/datacursormode.html linkinde en altta Alternatives bölümünde simgenin resmini görebilirsiniz. Bu simgeye bastığınızda resim üzerine fare ile tıkladığınızda bir data cursor ortaya çıkacaktır. Bunu resmin ilgili bölümlerine kaydırarak pikseller hakkında bilgi alabilirsiniz.
çok teşekkür ederim peki benim bu pixel değerlerini bir grafik üzerinde inceleme şansım var mı? Tek tek noktolara tıklamak yerine.
Aşağıdaki kodu inceleyebilirsiniz:
clear; clc; % Goruntumuzu Yukleyelim RGB = imread('hello5.JPG'); imshow(RGB) % RGB Goruntuyu Grayscale yapalim I = rgb2gray(RGB); %I matrisimdeki her element bir piksele karsilik gelen Grayscale renk tonunu verecek figure imshow(I) %Grayscale resmimizi bastirabiliriz de
Workspace üzerinde I değişkenine tıkladığınızda bütün değerleri matris olarak görebilirsiniz. Tek tek seçmenize gerek kalmaz.
sanırım tam anlatamadım sorunumu , gray scale dönüştürdükten sonra bu pixel değerlerini matrise dönüştürmek istiyorum
Yukarıda paylaştığım koddaki I değişkeni size bahsettiğiniz matrisi veriyor zaten??