Tantangan
Tulis kode yang, diberi gambar panel dari komik xkcd acak, mengembalikan nilai kebenaran jika Blackhat ada di komik atau falsey jika tidak.
Siapa Blackhat?
Blackhat adalah nama tidak resmi yang diberikan kepada karakter dalam komik xkcd yang mengenakan topi hitam:
Diambil dari halaman Jelaskan xkcd di Blackhat
Topi Blackhat selalu bersisi lurus, hitam dan terlihat sama seperti pada gambar di atas.
Karakter lain mungkin juga memiliki topi dan rambut, tetapi tidak ada yang memiliki topi hitam dan lurus.
Memasukkan
Gambar dapat dimasukkan dengan cara apa pun yang Anda inginkan apakah itu jalur ke gambar atau byte melalui STDIN. Anda tidak perlu mengambil URL sebagai input.
Aturan
Hardcoding jawabannya tidak dilarang, tetapi tidak dihargai.
Anda tidak diizinkan mengakses internet untuk mendapatkan jawabannya.
Contohnya
Semua gambar dipotong dari gambar dari https://xkcd.com
Blackhat ada di panel (kembali truthy
)
Blackhat tidak ada di panel (kembali falsey
)
Uji Baterai
Ke-20 gambar yang mengandung Blackhat dapat ditemukan di sini: https://beta-decay.github.io/blackhat.zip
Ke-20 gambar yang tidak mengandung Blackhat dapat ditemukan di sini: https://beta-decay.github.io/no_blackhat.zip
Jika Anda ingin lebih banyak gambar untuk diuji dengan program Anda (untuk melatih kasus-kasus uji misteri), Anda dapat menemukan daftar semua penampilan Blackhat di sini: http://www.explainxkcd.com/wiki/index.php/Category: Comics_featuring_Black_Hat
Kemenangan
Program yang mengidentifikasi dengan benar apakah Blackhat ada di komik atau tidak untuk sebagian besar gambar yang menang. Header Anda harus memasukkan skor Anda sebagai persentase.
Jika terjadi tiebreak, program yang diikat akan diberi gambar "misteri" (yaitu yang hanya saya ketahui). Kode yang mengidentifikasi paling benar memenangkan tiebreak.
Gambar misteri akan terungkap bersama dengan skor.
Catatan: sepertinya nama Randall untuknya mungkin Hat Guy. Saya lebih suka Blackhat.
sumber
Jawaban:
PHP (> = 7), 100% (40/40)
Untuk menjalankannya:
Contoh:
Catatan
Beberapa contoh topi hitam yang terdeteksi:
Contoh-contoh ini diperoleh dengan menggambar garis merah pada titik-titik khusus yang ditemukan pada gambar yang skrip memutuskan memiliki topi hitam (gambar dapat memiliki rotasi dibandingkan dengan yang asli).
Tambahan
Sebelum memposting di sini, saya melakukan pengujian skrip ini terhadap 15 gambar lainnya, 10 dengan topi hitam dan 5 tanpa topi hitam dan semuanya benar (100%).
Ini adalah file ZIP yang berisi gambar uji ekstra yang saya gunakan: extra.zip
Dalam
extra/blackhat
direktori, hasil deteksi dengan garis merah juga tersedia. Misalnyaextra/blackhat/1.png
adalah gambar uji danextra/blackhat/1_r.png
merupakan hasil pendeteksian.sumber
imagerotate
built-in, jadi ...Matlab, 87,5%
Peningkatan versi sebelumnya, dengan beberapa cek ditambahkan pada bentuk wilayah kandidat.
Kesalahan klasifikasi dalam set HAT : gambar 4, 14, 15, 17 .
Kesalahan klasifikasi dalam set NON HAT : gambar 4 .
Beberapa contoh gambar rahasia yang dikoreksi:
Contoh gambar rahasia yang salah:
VERSI LAMA (77,5%)
Pendekatan berdasarkan erosi gambar, mirip dengan solusi yang diusulkan oleh Mnemonic, tetapi berdasarkan pada saluran V dari gambar HSV. Selain itu, nilai rata-rata saluran dari area yang dipilih diperiksa (bukan ukurannya).
Kesalahan klasifikasi dalam set HAT : gambar 4, 5, 10 .
Kesalahan klasifikasi dalam set NON HAT : gambar 4, 5, 6, 7, 13, 14 .
sumber
Pyth , 62,5%
Menerima nama file file gambar di stdin. Kembali
True
jika rata-rata semua komponen warna RGB-nya lebih besar dari 214. Anda membacanya dengan benar: rupanya gambar blackhat cenderung lebih cerah daripada gambar no-blackhat.(Tentunya seseorang dapat berbuat lebih baik — ini bukan golf kode !)
sumber
Python 2,
65%72,5%77,5% (= 31/40)Ini menentukan piksel mana yang hitam, lalu mengikis potongan kecil yang berdekatan. Tentunya ruang untuk perbaikan di sini.
sumber