RGB565 biçiminde bir görüntü çıkaran bir mikroişlemciden bir RGB matrisi alıyorum. Bunu MATLAB'a okumak, RGB24 formatına dönüştürmek ve görüntüyü çıkarmak istiyorum. Bunu nasıl yaparım?MATLAB'da RGB565 ve RGB24 görüntü formatları arasında nasıl dönüştürebilirim?
cevap
Önce MATLAB'da bir matris içine metin dosyasından veri okumak zorunda. Ben metin dosyası içinde ne biçim bilmiyorum, ben o zaman büyük olasılıkla yeniden şekillendirmek zorunda kalacak, muhtemelen (muhtemelen tip uint16
arasında) değerlerinizin tüm okumak için işlevini fscanf
kullanmanız gerekecektir düşündürmektedir sadece edebilirsiniz reshape
işlevini kullanarak N-by-M görüntü matrisine değerler.
Tüm bunları yaptığınızı varsayalım ve şimdi N-by-M matris img
işaretsiz 16 bitlik tam sayılara sahip olursunuz.
Daha sonra, işlevini kullanabilirsiniz: Öncelikle, kimin pozisyonları 16 bit tamsayı burada gösterilmektedir, kırmızı, yeşil ve mavi bileşenler için bitlerini ayıklamak için işlevini bitand
kullanabilirsiniz bitshift
ve kırmızı, yeşil ve mavi değerleri 0 ila 255 aralığına ölçeklendirmek için bir ölçek faktörü ile çarpma, sonra uint8
işlevini kullanarak işaretsiz bir 8 bit tam sayıya dönüştürün. Daha sonra,
imgR = uint8((255/31).*bitshift(bitand(img, 63488), -11)); % Red component
imgG = uint8((255/63).*bitshift(bitand(img, 2016), -5)); % Green component
imgB = uint8((255/31).*bitand(img, 31)); % Blue component
Artık, bir N-ile-M-ile-3 RGB görüntü matrisi içine üç renk bileşenlerini koymak için işlev cat
kullanabilir: Bu img
aynı boyutta matrisler sen üç renk bileşeni verecek
imgRGB = cat(3, imgR, imgG, imgB); % Concatenate along the third dimension
imwrite(imgRGB, 'myImage.bmp'); % Output the image to a file
Örnek: işlevi imwrite
kullanarak bir RGB24 bitmap dosyası görüntü kaydetmek
kullanarak rasgele oluşturulmuş bir 100-by-100 UInt16 matrisi değerler ve yukarıdaki dönüşümleri uygulayarak, burada sonuçlarıdır:
img = randi([0 65535], 100, 100, 'uint16');
% Perform the above conversions to get imgRGB
subplot(1, 2, 1);
imshow(img);
title('Random uint16 image');
subplot(1, 2, 2);
imshow(imgRGB);
title('Corresponding RGB image');
Harika bir cevap ver! Gerçekten yardımcı oldu! – NewImageUser
RGB565 6 bitlik yeşil ve 5 Biraz mavi, 5 bitlik kırmızı anlamına gelir. RGB24 8 bit kırmızı, 8 bit yeşil ve 8 bit maviden yapılmıştır.
bitget kullanma ve verilerinizi dönüştürebilir bitset.
http://www.mathworks.de/access/helpdesk/help/techdoc/ref/bitget.html
Bir kez onu RGB24'e dönüştürdüğümde, matlabı görüntü olarak nasıl gösterebilirim? – NewImageUser
'imshow (rgbImage)' – Jonas
- 1. Matlabda maske olarak görüntü uygulama
- 2. Float ve [Word8] arasında nasıl dönüştürebilirim?
- 3. Perl'deki bilimsel ve ondalık notasyon arasında nasıl dönüştürebilirim?
- 4. OCaml'de hex, oct, decimal ve binary arasında sayıları nasıl dönüştürebilirim?
- 5. Matlabda çeşitli matrisler nasıl yazılır?
- 6. Matlabda elle çizilmiş çizgiyi nasıl düzleştirebilirim?
- 7. Orijinal görüntü ile sıkıştırılmış görüntü arasında CR nasıl hesaplanır?
- 8. Sphinx belgelerini kullanma Lateks/PDF yapıları için HTML yapıları ve pdf görüntü formatları için png görüntü formatlarını nasıl belirleyebilirim?
- 9. PySide SVG resim formatları bulunamadı?
- 10. matlabda spiral meshgrid
- 11. Vowpal Wabbit eğitim ve test veri formatları
- 12. Matlabda nihayet eşdeğer ... deneyin
- 13. Ffmpeg konteyner formatları listesi?
- 14. Bu LINQ sorgu ifadesini C# ile VB.NET arasında nasıl dönüştürebilirim?
- 15. WPF ortam formatları
- 16. Matlabda saydam bir piksel yapın
- 17. Baz64 görüntüsünü nasıl dönüştürebilirim?
- 18. DiffTime'ı NominalDiffTime'a nasıl dönüştürebilirim?
- 19. Hangi resim formatları meta verileri içeriyor ve PHP'de nasıl temizleyebilirim?
- 20. Matlabda dinamik olarak sınıf oluşturma
- 21. Matlabda jacobi yineleme işlemlerinin sayısı nasıl hesaplanır
- 22. Matlabda dll'ler nasıl oluşturulur ve bu dll'leri .Net uygulamalarında nasıl kullanılır
- 23. Matlabda sınırlama kutusu koordinat ölçümü
- 24. Matlabda çok değişkenli degrade alçalma
- 25. Varchar'ı datetime'ye nasıl dönüştürebilirim ve TSQ
- 26. Görüntüleri scikit-image'den opencv2 ve diğer kütüphanelere nasıl dönüştürebilirim?
- 27. Opengl - farklı köşe formatları oluşturma
- 28. Ruby: Bir veri dizisini karma ve json biçimine nasıl dönüştürebilirim?
- 29. matlab görüntü dosyasına plot kaydetme: saveas ve print arasındaki fark
- 30. HTML'yi Tekstil'e nasıl dönüştürebilirim?
http://www.mathworks.com/access/helpdesk (eğer [IMREAD] kullanarak MATLAB içine RGB565 görüntüyü okuma denediniz /help/techdoc/ref/imread.html)? Bunu yaptığınızda 'X' ve' map' için hangi bilgiler listelenir ?: '[X, map] = imread ('your_file.bmp'); whos' – gnovice
hiçbir dosya.bmp yoktur. Bu, bir uP – NewImageUser
'dan gelen ham RGB değerleridir, peki bu değerleri MATLAB'a nasıl alıyorsunuz? Onları bir değişkene koymayı zaten başardıysanız, bu değişkenler ne tür? Uint16 mı? – gnovice