Soru sorBir rengin dalga boyunu grafikte görmek için ne yapılmalı ?
frkngrbz tarafından 4 yıl önce soruldu

spectrometrede çıkan bir rengin(mavi) çizgi şeklinde çıkıyor renk bu rengin dalga boyunu(nm)grafik üzerinde nasıl görebilirim ?

17 Cevap
En iyi cevap
sayginer Yönetici tarafından 4 yıl önce cevaplandı


OptikOzellik.png dosyası Optik özelliğinizin yer aldığı görsel olsun. Gokkusagi.png de gökkuşağı görseli olsun (buradan indirin mesela)
Daha sonra bu görselleri subplot ponksiyonu ile üst üste bastıralım.
[y,z]=imread('OptikOzellik.png','png');
subplot(2,1,1)
imshow(y);
%
[y,z]=imread('Gokkusagi.png','png');
subplot(2,1,2)
imshow(y);
Alt taraf büyük, üst taraf küçük saçma sapan bir şey çıktı. Neden? Çünkü MATLAB ortamına görselleri sayısal olarak aktarırsınız, bu yüzden de pixel boyutları eşleşmedi. Eğer size önerdiğim gibi herhangi bir görsel editör kullansaydınız çok daha kolay olabilirdi. Ama yine de bu yöntemde ısrar etmek istiyorsanız pixelleri Optik özellik grafiğinize denk bir gökkuşağı görseli oluşturarak tekrar deneyebilirsini.
Eğer bu işi teknik olarak usulüne uygun olarak yapmak isterseniz de aşağıdaki örneği inceleyebilirsiniz. (Bu sorunuza bu kadar detaylı bir cevabı da başka bir yerde bulmanız çok zor.)

Bir optik özellik grafiğine görünür dalgaboyu renklerini eklemek

Dalgaboyuna karşılık optik özelliklerin çizdirildiği bir grafiğe görsellik kazandırmak amacıyle görünür renk tayfını (gökkuşağı renklerini) aşağıdaki yöntemlerle ekleyebiliriz.
Önemli: Optik Özelliğimize ait verilerin elimizde olması veya matematiksel olarak elde edebiliyor olmamız gerekiyor.

1. MATLAB Color Tools kuralım

MATLAB Color Tools eklentisini MATLAB>Home>Add-Ons>Get Add-ons altından aratarak kuralım.

2. Özellik Grafiğimizi Çizdirelim

lambda=380:1:780;
OptikFonksiyonum= 1000*sin(2*pi*0.01*lambda);
%
figure;
plot(lambda,OptikFonksiyonum, 'Color','k','LineWidth', 5); hold on;
xlabel('Dalgaboyu (nm)'); ylabel('Optik Ozellik');
set(gca,'FontSize',15);

3. Daha Sonra Gökkuşağı grafini ekleyelim

xlim([380 780]);
[colors,lambda] = spectrumColors;
ax = gca;
ax.Colormap = colors;
ax.CLim = [min(lambda) max(lambda)];
cb = colorbar;
cb.Location = 'southoutside';
cb.Ticks = ax.XTick;
cb.Label.String = ax.XLabel.String;
cb.TickDirection = "out";
ax.XTickLabels = [];
ax.XLabel = [];

sayginer Yönetici tarafından 4 yıl önce cevaplandı

Nasil bir sey yapmaya calisiyorsunuz? Biraz daha acik yazarsaniz size yardimci olabilecegimi dusunuyorum

frkngrbz tarafından 4 yıl önce cevaplandı

Teşekkür ederim öncelikle yanıt verdiğiniz için sorum şu spectrometre adında bir cihaz var bu cihaz çizgi şeklinde bir renk çıkartıyor yansımalarla kaynaklı bu rengi çıkardıktan sonra akıllı telefon yardımıyla rengin dalga boyu gibi özellikeri gözüküyor benim yapmak istediğim ise bu rengi alıp spectralworkbench.org sayfasındaki gibi bir rengi alıp matlabta o rengin dalga boyunu görüntülemek yardımcı olursanız çok sevinirim İyi günler…

sayginer Yönetici tarafından 4 yıl önce cevaplandı

Uzgunum, yapmak istediginizi  hala tam anlayabilmis degilim. Ancak tecrube ettigim benzer durumlari sizinle paylasayim.
Anladigim kadari ile Yansima/Dalgaboyu grafiginiz var ve bu grafikteki gorulebilir dalgaboylari icin karsilik gelen renk degerleri ile eslestirmek istiyorsunuz.
Bunun icin 3 farkli yontem onerecegim size.

  1. Yansima/Dalgaboyu ozelligini grafigini renk temelli parcalara bolerek ust uste ayni grafigi bastirabilirsiniz. ancak guzel bir renk gosterimi saglayabilmek icin oldukca fazla araliga bolmeniz gerekecek. Bu acidan biraz ugrastirici olabilir.
  2. Bu tarz gosterimler icin hazirlanmis burada bir arac cubugu da bulunuyor: https://www.mathworks.com/matlabcentral/fileexchange/7021-spectral-and-xyz-color-functions
  3. Yansima/Dalgaboyu grafiginizi bastirdiktan sonra altina dalgaboylarina gore esit araliklarla hazirlanmis renk cizelgesi (resim ile) ile grafik editoru kullanarak birlestirebilirsiniz. Bu renk cizelgesini PowerPoint ile hazirlayabilirsiniz. Bir kere hazirlandiktan sonra her yerde kullanabilirsiniz.

Kolay gelsin

frkngrbz tarafından 4 yıl önce cevaplandı

Görsel yüklenemiyor mu ? öyle daha iyi anlatabilirdim derdimi 

sayginer Yönetici tarafından 4 yıl önce cevaplandı

Yukleniyor. Herhang bir cevrimici gorsel yukleme servisini kullanabilirsiniz. Orn: hizliresim.com

frkngrbz tarafından 4 yıl önce cevaplandı

https://hizliresim.com/wS23yE Teşekkür ederim cevapladığınız için hızlı resime bu şekilde yükledim resmim budur spectralworkbench.org sayfasından aldım bunda siyah olan yerlerde bi dalga boyu vermiyor zaten mavi ye geldiği zaman bi dalga boyu grafiği çıkması lazım bu grafiği matlab üzerinden görebilirmiyim ? İyi günler…

sayginer Yönetici tarafından 4 yıl önce cevaplandı

İstediğinize benzer örnek bir kodu aşağıda inceleyebilirsiniz.

lambda=380:1:435; %Mor otesi
OptikFonksiyonum= 1000*sin(2*pi*0.01*lambda)
figure; 
plot(lambda,OptikFonksiyonum, 'Color','#7E2F8E','LineWidth', 5); hold on;

lambda=435:1:500; %Mavi
OptikFonksiyonum= 1000*sin(2*pi*0.01*lambda)
plot(lambda,OptikFonksiyonum,'Color','#0000FF', 'LineWidth', 5); hold on;

set(gca,'Color','k') % Arkaplani siyah yapalim
frkngrbz tarafından 4 yıl önce cevaplandı

Teşekkür ederim burda optikfonksiyonum dediğiniz yere imread('          .png') şekilde resmi koyup çalıştırmam mı gerekiyor ? 

sayginer Yönetici tarafından 4 yıl önce cevaplandı

Hayır, ben bu kodları grafiğinizi MATLB ortamında ürettiğinizi varsayarak verdim. Siz grafiklerinizi görsel olarak mı bulunduruyorsunuz? Elinizde Optik Fonksiyonunuzun (Yansım, iletkenlik v.s.) verisi bulunuyor mu?

frkngrbz tarafından 4 yıl önce cevaplandı

Maalesef sizin kadar bilgim yok tek isteğim attığım resmi matlab ortamına yükleyip grafik görmek sonrasında telefon uygulamasına çevirmek için şimdilik sadece bir fotoğraftaki rengin dalga boyunu görmek istiyorum.
https://hizliresim.com/jyicpn mesela şu örnek gibi üstteki resmi yükleyip aşağıdaki gibi bi grafik görmek istiyorum.

sayginer Yönetici tarafından 4 yıl önce cevaplandı
  1. Spectrometre'de gördüğünüz grafiğin verilerini metin dosyasında v.s. alamıyor musunuz?
  2. Verdiğiniz örnekteki grafikleri MATLAB ile çizdirebiliyor musunuz?
  3. Bu işlemleri MATLAB ile yapmak istemenizin sebebi nedir?
frkngrbz tarafından 4 yıl önce cevaplandı

spectrometreyi kendim yapıyorum 3D yazıcı ile çevresini çıkardım kamera vs ekipmanlarını açısına göre yerleştirdim bi renk alıyorum ama örnek olarak ilk attığım resmi kullanıcam mesela öyle birşey çıktı diyelim şimdi de bu rengin akıllı telefon olan kısmını yapmak istiyorum yani telefon olmasına gerek yok ama telefonda o renk yansıtıldıktan sonra ki dalga boyunu gösteren bir şey yapmak istiyorum bunu da matlab ortamında yapabilirmiyim bilmiyorum aslında size sormak istedim .
 

sayginer Yönetici tarafından 4 yıl önce cevaplandı

Güzel çalışma. Bir benzerini lise öğrencileri için yaptırmıştım.
Akıllı telefon kısmı ile ilgili bir şey diyemem ancak aldığınız veriyi MATLAB ile işleyebilirsiniz. Kameranızı MATLAB ile görebilirsiniz. Buraya bakın lütfen: https://it.mathworks.com/videos/using-usb-webcams-in-matlab-online-1563166929426.html
Ancak MATLAB ile bir şeyleri uygulasanız dahi ileride telefon uygulaması gibi bir niyetiniz varsa her şeyi tekrardan oluşturmanız gerekecek, haberiniz olsun.
Kolaylıklar

frkngrbz tarafından 4 yıl önce cevaplandı

https://hizliresim.com/jyicpn  Sonuç: şu linkteki üstteki resimi matlaba aktarıp altındaki gibi bir dalga boyu göremem değil mi ? 

sayginer Yönetici tarafından 4 yıl önce cevaplandı

İki farklı resim formatındakı dosyayı (örn: .jpg .png v.s.) MATLAB ile açarak subplot fonksiyonu ile üst üste koyabilirsiniz. Ancak, grafiklerinizi halihazırda başka bir yazılım ile zaten çizdiriyorsanız MATLAB ile çizdirmenizin ne gibi bir anlamı olur onu bilmiyorum.
Eğer aldığınız ölçümler elinizde veri olarak bulunuyorsa (dalga boyuna karşılık gelen optik değerlerin  sayısal karşılıkları) bunları MATLAB ortamında tekrar çizdirerek istediğiniz formatı görsel uygulayabilirsiniz. Yukarıda verdiğim kod örneğini uygulayabilirsiniz. MATLAB sayısal olarak her türlü ifadeyi pratik olarak uygulamak için özelleşmiş bir yazılımdır.
Tekrar,
Eğer elinizde halihazırda spektrum (tayf) görselleri bulunuyorsa (Data/Veri yok sadece görsel grafik varsa) bunu renk skalası ile (Gökkuşağı renkli olan şeri görseli kastediyorum) birleştirme işlemini PowerPoint veya başka görsel düzenleme yazılımları ile gerçekleştirmeniz çok daha kolay olacaktır.