Menulis sebuah program yang dibutuhkan dalam standar truecolor gambar dan satu 24-bit RGB warna (tiga angka 0 sampai 255). Ubah gambar input (atau hasilkan gambar baru dengan dimensi yang sama) sedemikian rupa sehingga warna rata - ratanya sama dengan warna tunggal yang dimasukkan. Anda dapat memodifikasi piksel pada gambar input dengan cara apa pun yang Anda inginkan untuk mencapai hal ini, tetapi tujuannya adalah untuk membuat perubahan warna sedapat mungkin tidak terlihat secara visual .
Warna rata - rata gambar RGB sebenarnya adalah satu set dari tiga cara aritmatika , satu untuk setiap saluran warna. Nilai merah rata-rata adalah jumlah dari nilai merah di semua piksel dalam gambar dibagi dengan jumlah total piksel (area gambar), dibulatkan ke bawah ke bilangan bulat terdekat. Rata-rata hijau dan biru dihitung dengan cara yang sama.
Ini Python 2 (dengan PIL ) naskah dapat menghitung warna rata-rata sebagian besar format file gambar:
from PIL import Image
print 'Enter image file'
im = Image.open(raw_input()).convert('RGB')
pixels = im.load()
avg = [0, 0, 0]
for x in range(im.size[0]):
for y in range(im.size[1]):
for i in range(3):
avg[i] += pixels[x, y][i]
print 'The average color is', tuple(c // (im.size[0] * im.size[1]) for c in avg)
(Ada program warna rata-rata serupa di sini , tetapi mereka tidak harus melakukan perhitungan yang persis sama.)
Persyaratan utama untuk program Anda adalah bahwa untuk gambar input apa pun , warna rata-rata output yang sesuai harus benar - benar cocok dengan warna yang dimasukkan - seperti yang dinilai oleh cuplikan Python atau beberapa kode yang setara. Gambar output juga harus memiliki dimensi yang sama persis dengan gambar input.
Jadi, Anda bisa secara teknis mengirimkan program yang hanya mewarnai seluruh input warna rata-rata yang ditentukan (karena rata-rata akan selalu menjadi warna itu), tetapi ini adalah kontes popularitas - pengiriman dengan jumlah suara terbanyak akan menang , dan sepele seperti itu pengiriman tidak akan membuat Anda banyak upvotes. Ide-ide baru seperti memanfaatkan kebiasaan aneh dalam penglihatan manusia, atau mengecilkan gambar dan menggambar batas berwarna di sekitarnya akan (semoga) memberi Anda suara.
Perhatikan bahwa kombinasi warna dan gambar rata-rata tertentu memerlukan perubahan warna yang sangat mencolok. Misalnya, jika warna rata-rata yang cocok adalah hitam (0, 0, 0), gambar input apa pun harus dibuat benar-benar hitam karena jika setiap piksel memiliki nilai bukan nol, mereka akan membuat rata-rata juga bukan nol ( cegah kesalahan pembulatan). Ingatlah batasan seperti itu saat memberikan suara.
Gambar Uji
Beberapa gambar dan warna rata-rata default untuk dimainkan. Klik untuk ukuran penuh.
A. rata-rata (127, 127, 127)
Dari fejesjoco 's Gambar dengan semua warna menjawab . Ditemukan orisinal di blog-nya .
B. rata (62, 71, 73)
Yokohama . Disediakan oleh Geobits .
C. Rata-rata (115, 112, 111)
Tokyo . Disediakan oleh Geobits .
D. rata-rata (154, 151, 154)
Air Terjun Escher . Asli .
E. rata-rata (105, 103, 102)
Gunung Shasta . Disediakan oleh saya.
F. rata-rata (75, 91, 110)
Catatan
- Input dan output format dan tipe file gambar yang tepat yang digunakan program Anda tidak menjadi masalah. Pastikan saja jelas bagaimana menggunakan program Anda.
- Mungkin ide yang bagus (tetapi bukan persyaratan teknis) bahwa jika gambar sudah memiliki warna rata-rata tujuan, itu harus menjadi output apa adanya.
- Silakan memposting gambar uji dengan input warna rata-rata baik (150, 100, 100) atau (75, 91, 110), sehingga pemilih dapat melihat input yang sama di seluruh solusi yang berbeda. (Memposting lebih banyak contoh daripada ini tidak masalah, bahkan dianjurkan.)