OpenCV'de, görüntüde kayan nokta türü varsa, bu değer yalnızca 0'dan 1.0'a kadar olan değerlerde imshow
kullanılarak görüntülenebilir, bu değer beyaz piksel olarak gösterilir. ve 0,0'dan küçükse, siyah piksel olarak gösterilir. Bir kayan nokta görüntüsünü görselleştirmek için, değerlerini 0.0 - 1.0
aralığına ölçeklendirin.
Dönüştürme kısmı hakkında .... Varsayılan argümanlarla kullanıldığında, cv::Mat::convertTo
işlevi yalnızca belirtilen türden bir matris oluşturur ve sonra değerleri kaynak matristen kopyalar ve ardından bunları mümkün olan en yakın değere yuvarlar. hedef veri tipi. Değer aralık dışındaysa, minimum veya maksimum değerlere kenetlenir. imshow
belgelerinde
, bu yazılır: Resim 32-bitlik kayan nokta ise
, piksel değerleri çarpılır 255 tarafından kendisine, değer aralığı [0, 1] [0,255] ile eşleştirilmiştir.
Bu aralığında yalnızca değerleri 0.0 ila 1.0 bir değer 1.0'dan daha büyük ise 0 ile 255 eşlenir ve çarpılarak o olacak daha tarafından 255, bu daha büyük 255'e olacak anlamına gelir
hedef tür CV_8U
ve mümkün olan en yüksek değer 255 gibi CV_8U
aralığında kenetlenmiş ve sonunda da bir örnekte 255
olur, 1000 olan tüm değerleri, hedef matris içinde 255 olacaktır. Tüm kayan nokta değerleri floor
ed olacaktır. Otomatik haritalama yapılmaz. dönüşüm yapılır önce değerleri ölçekli böylece
uygun, CV_8U
kullanımı 3 ve fonksiyon cv::Mat::convertTo
4. parametreleri aralığına değerlerini eşleştirmek için.
matris
A
minimum ve maksimum değerleri
Min
ve
Max
,
Min!=Max
olduğunu varsayalım.
if (Min!=Max){
A -= Min;
A.convertTo(B,CV_8U,255.0/(Max-Min));
}
Ayrıca böyle doğrudan yapabilirsiniz:
if (Min!=Max)
A.convertTo(B,CV_8U,255.0/(Max-Min),-255.0*Min/(Max-Min));
(hesap zhangxaochen yorumuna dikkate alınarak düzenlediğini
düzgün aşağıdakileri yapabilirsiniz, 0 ile 255 arasında değerler ölçeklemek için
Teşekkürler sgar91, Azami değeri 2.3221 ve maksimum değerin 1000 olduğunu öğrendim. Bu aralığı 0-255'e nasıl eşlerim? Ben convertTo 3. ve 4. parametre için ne kullanmalıyım? –
@KarthikMurugan ... güncellenmiş cevabımı kontrol et. – sgarizvi
'beta 'alanı -255.0/Min' yerine -255.0 * Min/(Maks-Min) olmalıdır. – zhangxaochen