windows8.1 Excel 2013 python2.7 opencv3
Obtenez des informations de couleur de la photo de Nozomi Sasaki et remplissez-les dans une cellule Excel.
|---sasaki_excel |---sasaki_excel.py | --- sasaki_nozomi.jpg (Image de Nozomi Sasaki) | --- sasaki_nozomi.xlsx (Excel pour le dessin)
J'ai utilisé cette image.
sasaki_excel.py
# -*- coding:utf-8 -*-
import cv2
from openpyxl import load_workbook
from openpyxl.styles import PatternFill
#Chargement d'image
image = cv2.imread("sasaki_nozomi.jpg ")
#Lire le fichier Excel
wb = load_workbook(filename='sasaki_nozomi.xlsx')
#Sortez la feuille active
ws = wb.active
#Créer une liste d'alphabets en utilisant le code ASCII
# col_name = ['A','B',...,'Z']
col_name = [chr(i) for i in range(65,65+26)]
#Création d'une liste de noms de colonnes Excel
i = 0
for j in xrange(26, len(image[0])):
#Concaténation d'alphabet
col_name.append(col_name[i] + col_name[j % 26])
if (j + 1) % 26 == 0:
i += 1
if len(col_name) == len(image[0]):
break
for gyo in xrange(len(image)):
for retu in xrange(len(image[gyo])):
for rgb in xrange(len(image[gyo][retu])):
#Convertir les valeurs rouge, verte et bleue en hexadécimal
#En hexadécimal'0x**'Extrait les 2 derniers caractères car il est converti en
red = hex(image[gyo][retu][0])[2:4]
#Par exemple'0xc'Il existe également un nombre hexadécimal qui est converti en, donc concaténer 0
if len(red) == 1:
red = '0' + red
green = hex(image[gyo][retu][1])[2:4]
if len(green) == 1:
green = '0' + green
blue = hex(image[gyo][retu][2])[2:4]
if len(blue) == 1:
blue = '0' + blue
#Modifier la largeur de la colonne et de la ligne
ws.column_dimensions[col_name[retu]].width = 0.3
ws.row_dimensions[retu].height = 1.5
#Obtenez le nom de la cellule à remplir
cell_name = col_name[retu] + str(gyo + 1)
#Définir le nom de la cellule
cell = ws[cell_name]
#Concaténer les nombres hexadécimaux
color = str(blue) + str(green) + str(red)
#remplir
cell.fill = PatternFill(patternType='solid', fgColor=color)
#Enregistrer le fichier Excel
wb.save('sasaki_nozomi.xlsx')
Je n'ai jamais collé l'image (rires) ~~ La largeur de la cellule a été ajustée manuellement. ~~ [2016.5.29 postscript] Ajustement de largeur de cellule intégré dans le programme plutôt que manuellement
En tant qu'application de ce programme, vous pouvez rechercher des erreurs en comparant les couleurs des cellules de deux images.
[Openpyxl pour jouer avec des fichiers Excel à partir de Python](http://pepper.is.sci.toho-u.ac.jp/index.php?%A5%CE%A1%BC%A5%C8%2FPython%A4%AB % A4% E9Excel% A5% D5% A5% A1% A5% A4% A5% EB% A4% F2% A4% A4% A4% B8% A4% EBopenpyxl) Table de codes Ascii
Cliquez ici pour la version Node.js Cliquez ici pour la version Ruby
Recommended Posts