Tôi cần bình thường hóa các giá trị đạt được từ tỷ lệ băng tần thành 0-255. Tôi đang sử dụng QGIS. Làm thế nào để tôi làm điều này? Có ý kiến gì không?
Tôi cần bình thường hóa các giá trị đạt được từ tỷ lệ băng tần thành 0-255. Tôi đang sử dụng QGIS. Làm thế nào để tôi làm điều này? Có ý kiến gì không?
Câu trả lời:
Bạn có thể sử dụng tiện ích gdal_translate. Sử dụng tùy chọn -scale [src_min src_max [dst_min dst_max]] với src_min và src_max làm giá trị tối thiểu / tối đa hiện tại từ dữ liệu của bạn và 0,255 dưới dạng dst_min, dst_max. Nếu không có dấu ngoặc vuông.
Nếu bạn đã cài đặt QGIS với gói OSGeo4W, bạn có thể có chương trình đầu cuối có tên 'MSYS'. Mở nó và chỉ cần sử dụng lệnh gdal_translate. Nếu không, từ trong QGIS, chọn Raster -> Chuyển đổi -> Dịch. Chọn tập tin và tùy chọn của bạn. Ở dưới cùng của cửa sổ, lệnh gdal_translate đầy đủ sẽ được hiển thị. Nhấp vào chỉnh sửa và thêm tùy chọn -scale.
Việc sau đây sẽ kéo dài dữ liệu của bạn thành 8 bit (0-255).
smin=0; smax=255
( x - min(x) ) * (smax - smin) / ( max(x) - min(x) ) + smin
Nó khá dễ dàng để dịch nó sang cú pháp đại số raster trong phần mềm bạn chọn. Bạn sẽ chỉ cần biết giá trị tối thiểu và tối đa trong raster của bạn là gì. Nếu raster là kết quả của tỷ lệ băng tần thì có thể giả định -1 đến 1 và cú pháp sẽ trông giống như thế này.
NewRaster = ( OldRaster - -1 ) * 255 / ( 1 - -1 ) + 0
smax
Thuật ngữ đầu tiên thực sự nên là smax - smin
- trong ví dụ (0-255) không thành vấn đề, nhưng ở đâu smin
! = 0