Keseimbangan warna dan publikasikan citra resolusi tinggi dalam geoserver

11

Saya memiliki sejumlah besar gambar RapidEye (+300 Gb) yang ingin saya gunakan sebagai basemap untuk aplikasi online. Sejauh ini saya telah berhasil melayani mereka sebagai ImagePyramid di geoserver mengikuti langkah-langkah yang ditunjukkan dalam presentasi yang disebut "Geoserver on steroid". Masalahnya adalah bahwa saya belum bisa melakukan keseimbangan warna yang tepat sehingga ketika melihat seluruh dataset, mosaik terlihat sangat buruk tetapi ketika saya memperbesar, itu menjadi lebih baik (gambar di bawah).

Proses saya adalah:

  1. Ubah semua gambar menjadi 8 bit, epsg 4326, interpolasi kubik menggunakan gdal
  2. Hasilkan raster virtual gdal dengan semua gambar (gdalbuildvrt)
  3. Hasilkan piramida gambar (gdal_retile dengan kompresi dan geotiff tilling) dan publikasikan di geoserver (menggunakan peregangan histogram dalam gaya layer)

Adakah tips tentang cara meningkatkan proses dan mendapatkan keseimbangan warna yang lebih baik?

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Daniel
sumber

Jawaban:

6

Saya yakin saya mengerti.

Saya memaksa rata-rata + -2 Standard histogram Deviasi rata-rata di setiap gambar RapidEye selama konversi ke 8bit.

Saya menggunakan skrip python untuk mengidentifikasi gambar min, maks, rata-rata dan SD. Saya kemudian mengatur nilai rata-rata - 2SD (atau gambar min, mana yang lebih tinggi) menjadi 2 dan rata-rata + 2SD (atau maks) menjadi 254. Dan untuk amannya, nilai awal nol pada gambar ditetapkan ke 1 dan 2 ^ 16 diatur ke 255. NoData diatur ke 0.

Ini adalah vektor fungsi transfer:

original image values = [0, mean-2SD, mean+2SD, 65536]
rescaled values = [1 2, 254, 255]

Berikut adalah beberapa tangkapan layar. Masalah yang harus saya perbaiki sekarang adalah

  1. Hapus perbatasan hitam di sekitar imagePyramid
  2. Dapatkan gambar yang tampak lebih baik saat diperbesar hingga penuh. Sekarang terlihat seperti TV lama yang disetel ke saluran yang salah

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Sunting
Saya sekarang menempatkan kode pada GitHub. Sudah lama sejak saya menggunakannya. Kode sedikit berantakan dan repositori juga demikian. Tetapi harus tetap bekerja.
https://github.com/dvictori/rapideye_hist2sd

Daniel
sumber
Bravo, tuan. Anda mendapatkan 10 dari 10 untuk ini. Sedangkan untuk masalah kedua Anda (terlihat lebih baik bila diperbesar sampai batas penuh), dapatkah Anda menggunakan citra berbutir rendah, seperti LandSat, atau ASTER? Saya pikir citra kasar akan terlihat lebih baik ketika diperbesar. ..sebagai perhatian pertama Anda, saya masih mencoba untuk memecahkan kacang itu, sendiri. Saya ingin melihat artikel lengkap untuk bagaimana Anda melakukan ini, termasuk skrip py jika Anda bersedia membaginya. Adakah kesempatan Anda berencana untuk mempresentasikan pendekatan Anda di mana saja?
elrobis
Saya tidak berencana mempresentasikan ini atau melakukan penulisan. Tapi sekarang yang Anda sebutkan, siapa tahu. Adakah saran untuk media yang tepat untuk menyajikan ini? Adapun skrip py, Anda dapat mengunduhnya dari dropbox.com/s/1hfobfp9ymtku2n/rapideye_hist2sd.py Namun, berhati-hatilah. Saya menganggap diri saya seorang programmer yang jelek dan saya yakin program saya bisa menggunakan banyak perbaikan.
Daniel
2
Saya mengubah tautan unduhan dari komentar di atas. Jika Anda ingin melihat kode python yang saya gunakan, Anda dapat mengunduhnya dari goo.gl/ePEc7G
Daniel
Terima kasih @aniel. Saya menyimpan blog tempat saya memposting cara-untuk hal-hal seperti itu. Jika saya menemukan sesuatu yang tidak mudah, dan untuk itu saya tidak dapat menemukan banyak bantuan di web, saya akan membuat posting blog karena beberapa alasan. Pertama, saya berasumsi saya perlu mengulangi tugas itu kapan-kapan, jadi jika saya mengkonsolidasikan langkah-langkah tersebut ke dalam sebuah posting maka saya dapat dengan mudah memeriksanya nanti. Kedua, saya pikir selalu ada kesempatan seseorang di luar sana ingin melakukan sesuatu yang serupa, dan mereka mungkin mendapat manfaat dari pos tersebut. Apa yang Anda lakukan di sini sangat layak untuk blog, walaupun hanya itu posting Anda untuk sementara waktu. :)
elrobis
Ini adalah ide yang luar biasa, dan saya mencoba untuk mengadaptasinya untuk frame yang lebih kecil, kamera 3 band berubah dari 8 bit menjadi 8 bit, tapi saya mengalami kesulitan untuk mengimplementasikannya. Bagaimana saya mengarahkan direktori input gambar ke skrip ini? Dari mana mereka dipanggil? Saya kira ini semua harus berjalan melalui geoserver, tetapi dapatkah saya memecahkan ini dan menjalankannya sendiri?
Wes
4

Daniel, apakah gambar-gambar ini dari musim yang sangat berbeda? Atau waktu dalam sehari? Jika mereka musim yang berbeda, maka mendapatkan keseimbangan warna yang baik mungkin cukup sulit. Tetapi jika mereka berbeda waktu dalam sehari, maka menerapkan koreksi untuk sudut matahari dapat membantu secara nyata. Perkiraan urutan pertama yang baik untuk sudut matahari adalah mengalikan piksel kali 1,0 / cos (angle_of_sun_off_directly_above). Jadi tidak ada penyesuaian jika matahari langsung di atas, meningkat menjadi ... yah tak terbatas saat Anda mendekati fajar / senja.

Saya telah mendapatkan hasil yang buruk di masa lalu menggunakan pencocokan histogram antara adegan di daerah yang tumpang tindih untuk merakit mosaik besar karena Anda mendapatkan efek melayang yang aneh di mosaik. Saya pikir pendekatan yang lebih berguna mungkin semacam pencocokan histogram terhadap gambar target warna dasar (mungkin mosaik landsat yang menarik dari daerah). Saya juga tertarik untuk menyelesaikan masalah ini. Charlie Loyd di MapBox mungkin juga memiliki pemikiran.

Frank Warmerdam
sumber
Frank, sebagian besar gambar dari musim kemarau, ketika awan tertutup. Tapi ada gambar dari bulan yang berbeda, seperti Agustus, November, dll. Saya sekarang mencoba untuk membagi gambar menjadi blok-blok kecil dan membuat mosaik untuk masing-masing. Akan memberi tahu Anda bagaimana hasilnya. Saya juga menulis skrip python untuk melakukan kecocokan CDF dan berfungsi dengan baik (tidak hebat) ketika saya memiliki sejumlah kecil gambar (20) tetapi ketika saya mendapatkan sejumlah besar, salah satu gambar pasti memiliki nilai di luar saya referensi rentang gambar dan hal-hal berhenti bekerja. Mungkin harus memikirkan cara yang lebih baik untuk memilih gambar referensi.
Daniel
0

Saya kadang-kadang menggunakan OSSIM Image linker dengan pencocokan histogram untuk membuat mosaik warna yang seimbang. Tutorial tautan gambar memberikan beberapa contoh http://download.osgeo.org/ossim/docs/pdfs/ImageLinker_Tutorial.pdf Namun, tautan Gambar tidak dipelihara secara aktif dan saya tidak tahu apakah itu berfungsi lagi. Ossim geocell adalah program saat ini tetapi tidak ada banyak dokumen pengguna tentang itu. Saya ingat bahwa untuk mencapai hasil yang baik saya terlebih dahulu memproses adegan Landsat saya satu per satu dengan OpenEV dengan menerapkan beberapa peregangan LUT untuk membuat gambar secara visual memiliki tampilan yang sama. Maka lebih mudah bagi OSSIM untuk membuat pencocokan akhir. Produk akhirnya terlihat sebagus yang saya buat dengan utilitas mosaik ER Mapper.

pengguna30184
sumber