[Python] Calculez la valeur moyenne de la valeur de pixel RVB de l'objet

1. Vue d'ensemble

Cette fois, nous allons introduire le processus de sortie de la valeur moyenne de la valeur de pixel RVB de l'objet dans un fichier csv. apple_introduction.jpg

Je veux trouver la valeur moyenne en pixels d'une image d'un objet tel qu'une pomme! Vous pouvez l'utiliser à ce moment-là. Vous pouvez lire comment ce processus a été construit dans un article que j'ai publié sur Qiita plus tôt. ↓ [[Python] Classer les pommes et les poires à partir des valeurs de pixels à l’aide d’une machine à vecteurs de support (SVM)] [0] [0]:https://qiita.com/ZESSU/items/3083ce23e0405565765d Ce processus est utilisé pour effectuer le prétraitement de la méthode décrite dans cet article, «Obtention de la valeur moyenne des valeurs de pixel RVB de chaque image de pomme et de poire».

La seule information requise pour ce processus est une image montrant l'objet. Cependant, si l'arrière-plan est inclus, il ne peut pas être calculé correctement, utilisez donc une application telle que Paint pour rogner uniquement l'objet proprement, comme illustré dans la figure ci-dessous. apple_image.jpg

2. Environnement

Étant donné qu'openCV est utilisé pour le traitement d'images et que les pandas sont utilisés comme trame de données, veuillez installer ces bibliothèques à l'avance.

pip install opencv-python
pip install pandas

3. Code

Le code est ici. En guise de mise en garde, puisque openCV est utilisé, la sortie sera dans l'ordre de BGR, pas RVB.

bgr_csv.py


import cv2
import numpy as np
import pandas as pd

idir = 'input/'
odir = 'output/'
fname='apple'
num_photo=10
bgr = np.zeros((num_photo,3))

for k in range(num_photo):

    img = cv2.imread(idir + fname + '_' + str(k+1) + '.jpg')  #Partir du numéro 1
    print(idir + fname + '_' + str(k+1) + '.jpg')
    h, w, c = img.shape #height, width, channnel

    #Initialiser
    l=0
    b_ave=0; g_ave=0; r_ave=0

    for i in range(h):
        for j in range(w):
            #Valeur de pixel[0,0,0](Black)を除外してピクセルの和とbgrのValeur de pixelの合計を計算する
            if(img[i,j,0] != 0 or img[i,j,1] != 0 or img[i,j,2] != 0 ):
                l+=1    #Calculez le nombre de pixels d'intérêt
                #Calculer la somme des valeurs de pixels des pixels cibles
                b_ave=b_ave+img[i,j,0]
                g_ave=g_ave+img[i,j,1]
                r_ave=r_ave+img[i,j,2]

    #Calculez la valeur moyenne des valeurs de pixels RVB en divisant les valeurs totales de pixels par le nombre de pixels.
    b_ave=b_ave/l
    g_ave=g_ave/l
    r_ave=r_ave/l

    bgr[k]=np.array([b_ave, g_ave, r_ave])

df = pd.DataFrame(bgr, columns=['blue', 'green', 'red'])    #Match avec ordre d'ouverture quasi-BGR
df.to_csv(odir + fname + '.csv')

Par exemple ...

fname='apple'
num_photo=1

Dans le cas de, la valeur moyenne de chaque valeur de pixel d'un seul fichier de "input / apple_1.jpg " est sortie comme "output / apple.csv".

4. Résultat

Après avoir traité les images de 10 pommes, le fichier apple.csv avec la valeur moyenne de 10 images BGR sera généré comme indiqué ci-dessous.

apple.csv


,blue,green,red
0,39.88469583593901,28.743374377331637,137.23369201906283
1,83.72563703792319,79.59471228615863,164.77884914463453
2,66.8231805177587,74.52501570023027,141.8854929872305
3,55.2837418388098,45.28968211495237,148.4160869099861
4,37.59397951454073,49.82323881039423,137.30237460066527
5,53.68868757437335,50.963264366051206,142.6121454070861
6,51.277953772145956,64.07145371348116,152.98116860260473
7,50.47702848900108,48.37151099891814,124.46714749368914
8,40.35442093843233,52.0682126390019,137.8299091402224
9,48.18758094199441,55.87655919841865,145.6361529548088

Comme décrit dans l'aperçu, en utilisant la sortie de fichier csv apple et pear par ce code ↓ [[Python] Classer les pommes et les poires à partir des valeurs de pixels à l’aide d’une machine à vecteurs de support (SVM)] [1] [1]:https://qiita.com/ZESSU/items/3083ce23e0405565765d Je fais. Jetez également un œil à cet article!

Recommended Posts

[Python] Calculez la valeur moyenne de la valeur de pixel RVB de l'objet
Astuces: [Python] Calculez la valeur moyenne de la zone spécifiée avec bedgraph
[Python3] Réécrire l'objet code de la fonction
Calculez le nombre total de combinaisons avec python
Découvrez la fraction de la valeur saisie en python
le zen de Python
Calculer le coefficient de régression d'une analyse de régression simple avec python
Vers la retraite de Python2
Calculez le nombre de changements
À propos des fonctionnalités de Python
Le pouvoir des pandas: Python
[Python] Modifier le contrôle du cache des objets téléchargés sur Cloud Storage
Hériter de la bibliothèque standard pour trouver la valeur moyenne de Queue
Calculez des millions de chiffres dans la racine carrée de 2 avec python
Manipulation des pixels d'image en Python
Trouvez la définition de la valeur de errno
L'histoire de Python et l'histoire de NaN
J'ai comparé le temps de calcul de la moyenne mobile écrite en Python
[Python] Trouvez la deuxième plus petite valeur.
[Python] La pierre d'achoppement de l'importation
First Python 3 ~ Le début de la répétition ~
Comment connaître la structure interne d'un objet en Python
Existence du point de vue de Python
pyenv-changer la version python de virtualenv
À propos de la valeur de retour de pthread_mutex_init ()
Obtenir les attributs d'un objet
À propos de la valeur de retour de l'histogramme.
[Python] Comprendre le potentiel_field_planning de Python Robotics
Revue des bases de Python (FizzBuzz)
Touchez l'objet du réseau neuronal
Obtenez et définissez la valeur du menu déroulant en utilisant Python et Selenium
Calculer le mois précédent en Python
À propos de la liste de base des bases de Python
Apprenez les bases de Python ① Débutants élémentaires
[Python] Yuriko Koike Calculez le nombre de votes dont vous avez besoin [matplotlib]
Calculer l'itinéraire le plus court d'un graphe avec la méthode Dyxtra et Python
Remarque Python: lorsque vous souhaitez connaître les attributs d'un objet
[Python] Calculez le nombre de chiffres requis lors de la saisie de 0 [Note]
Calculez la probabilité d'être une pièce de calmar avec le théorème de Bayes [python]
À propos du code Python pour une moyenne mobile simple en supposant l'utilisation de Numba
Obtenez la valeur de retour d'un script shell externe (ls) avec python3
Trouvons la valeur maximale python (correction ver)
Changer la longueur des chaînes csv Python
Vérifiez le comportement du destroyer en Python
[Python3] Comprendre les bases de Beautiful Soup
Notes d'apprentissage depuis le début de Python 1
Vérifier l'existence du fichier avec python
À propos de l'environnement virtuel de Python version 3.7
Laissez Python calculer l'équation de mouvement d'Euler Lagrange
Je ne connaissais pas les bases de Python
Le résultat de l'installation de python sur Anaconda
[Python] Essayez pydash de la version Python de lodash
[python] Vérifier la consommation de mémoire des variables