Bình thường hóa các giá trị raster thành 0-255


8

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?


1
Bởi vì đó là một tỷ lệ, xem ra! Ví dụ: nếu đó là tỷ lệ của hai hình ảnh 0-255 với biểu đồ cân bằng, thì một nửa tỷ lệ sẽ nằm trong khoảng từ 0 đến 1 trong khi nửa còn lại sẽ nằm trong khoảng từ 1 đến 255 (và một số sẽ không được xác định): đó là sự khác biệt lớn trong phạm vi ! Tùy thuộc vào mục đích của bạn, logarit của tỷ lệ có thể là số lượng tốt hơn để tính toán; tốt hơn nữa, tính toán nhật ký ((1 + band1) / (1 + band2)) để tránh số lượng không xác định. Ít nhất điều này sẽ tạo ra một bản đồ dễ đọc hơn.
whuber

Câu trả lời:


11

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.


16

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

1
+1: Câu trả lời chung (cú pháp độc lập) có ứng dụng rộng rãi. Chào mừng đến với trang web của chúng tôi, Jeffrey!
whuber

smaxThuậ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
Simbamangu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.