Pertanyaan Bagaimana cara menghitung jumlah piksel dengan warna tertentu di python?


Saya memiliki gambar dua warna, hitam dan merah, dan saya harus dapat menghitung berapa banyak piksel dalam gambar berwarna merah dan berapa banyak yang berwarna hitam.


5
2018-02-18 04:50


asal


Jawaban:


Saya mengoreksi kode dari 0xd3 agar benar-benar berfungsi:

from PIL import Image
im = Image.open('black.jpg')

black = 0
red = 0

for pixel in im.getdata():
    if pixel == (0, 0, 0): # if your image is RGB (if RGBA, (0, 0, 0, 255) or so
        black += 1
    else:
        red += 1
print('black=' + str(black)+', red='+str(red))

4
2018-04-15 21:09



Menurut http://personal.denison.edu/~bressoud/cs110-f12/Supplements/JESHelp/7_Picture_Functions.html , JES menawarkan fungsi sederhana yang melakukan semua yang Anda butuhkan, dan sesuatu seperti

black = makeColor(0, 0, 0)
red = makeColor(255, 0, 0)
numblacks = numreds = 0
for pixel in getPixels(picture):
    color = getColor(pixel)
    if color == black: numblacks += 1
    elif color == red: numreds += 1

harus dengan mudah melakukan semua yang Anda butuhkan (setelah impor apa pun yang diperlukan untuk membuat fungsi tersedia - saya tidak memiliki JES, juga tidak pernah saya lihat atau gunakan sebelumnya; semua yang saya miliki adalah dokumen yang saya temukan dengan penelusuran web ).

Namun, ini tampaknya sangat mudah, saya kira pasti ada yang lebih dari itu - saya tidak bisa membayangkan seseorang "terjebak pada ini selama tiga hari" (!). Tetapi jika saya curiga masih ada lagi, kamu harus menjadi orang yang memberi tahu kita - apa sebenarnya yang salah dengan kode ini (ditambah impor, def, pengembalian, atau cetak apa pun, atau apa pun, tugas Anda yang sebenarnya membutuhkan) yang tampaknya menggunakan fungsi-fungsi JES untuk menyelesaikan masalah dengan sepele ?! Kami tidak dapat membantu Anda kecuali Anda membantu kami membantu Anda!


2
2018-02-18 05:57



Pertama Anda perlu menginstal perpustakaan bantal.

sudo pip3 menginstal bantal

from PIL import *
im = Image.open("your picture")

for pixel in im.getdata():
    if pixel is (0,0,0):
        black += 1
    else:
        red += 1
print("black = " + black + "red = " + red)

2
2018-02-18 05:00