OpenCV - Opsi yang Memungkinkan untuk Kompresi Gambar

terima kasih telah meluangkan waktu untuk membaca postingan saya.

Saya sedang mengerjakan sebuah proyek kecil yang berjalan dengan baik tetapi sebagai latihan optimasi saya ingin mengurangi ukuran beberapa JPEG yang saya hasilkan. Saat ini, saya memiliki .jpg berukuran 600 x 400 yaitu sekitar 80kb.

Saya telah membaca tentang gambar 32-bit, 8-bit yang ditandatangani, tidak ditandatangani dan float dan char, bersama dengan ruang warna BGR dan YUV dan saya tidak yakin faktor mana yang paling mempengaruhi ukuran.

Adakah yang bisa menyarankan di mana saya bisa mulai mengurangi ukuran file ini?

Saya tentu saja akan bermain-main dan melakukan pengujian sendiri untuk menemukan kualitas gambar yang tepat untuk keseimbangan ukuran file.

Terima kasih banyak sebelumnya, Kay


person Kay Warner    schedule 06.03.2013    source sumber


Jawaban (1)


sepertinya Anda ingin mengompresi gambar Anda, saat menulis ke disk.

ini dia untuk jpeg:

std::vector<int> params;
params.push_back(CV_IMWRITE_JPEG_QUALITY);
params.push_back(100);   // that's percent, so 100 == no compression, 1 == full 
cv::imwrite("my.jpg",image,params);

dan di sini untuk png:

std::vector<int> params;
params.push_back(CV_IMWRITE_PNG_COMPRESSION);
params.push_back(9);   // that's compression level, 9 == full , 0 == none
cv::imwrite("my.png",image,params);
person berak    schedule 06.03.2013
comment
berak terima kasih banyak untuk itu, itulah yang saya butuhkan! Kode panjang dan makmur! - person Kay Warner; 07.03.2013