Ravi de vous rencontrer! Je m'appelle Yoshiki et je me spécialise dans l'apprentissage automatique et l'apprentissage profond à l'université! Cette fois, je voudrais expliquer la détection des contours en utilisant Python et OpenCV. (C'est aussi pour approfondir ma compréhension lol) Pour le moment, je ferai de mon mieux pour m'amuser et comprendre même ceux qui se demandent ce que Python peut faire!
Dans le monde du traitement d'image, le bord signifie un endroit où la luminosité change soudainement dans l'image, mais ce n'est pas très clair. À quoi pensez-vous habituellement lorsque vous entendez le mot edge? La bonne réponse est pour ceux qui pensent aux bords et aux contours! En d'autres termes, la détection des contours est une technologie qui extrait uniquement la caractéristique des contours pour faciliter le traitement de l'image!
Cette fois, je voulais que tout le monde bouge la main pour exécuter le programme, alors je voudrais l'implémenter en utilisant Google Drive et Google Colaboratory plutôt que localement. En guise de mérite, je l'ai choisi car il est pratique car il peut être utilisé sans installer la bibliothèque avec pip etc.
Une fois que vous avez accès, sélectionnez l'élément appelé Dossier à partir du nouveau bouton en haut à gauche. Si vous cliquez dessus, un champ de saisie de nom apparaîtra. Tout va bien, mais je l'ai nommé Edge!
Eh bien, c'est presque la fin! Dans Images, mettez les images dont vous souhaitez détecter les contours! Vous pouvez le faire en téléchargeant un nouveau fichier de bouton. Dans Src, sélectionnez Google Colaboratory dans Nouveau en bas. (Sinon, recherchez et installez l'application à partir de Add!) Une fois sélectionné, vous devriez être redirigé vers l'écran de l'éditeur.
Enfin, sur les spécifications de Google Colaboratory. ・ Veuillez noter que Google Colaboratory sera déconnecté dans environ 30 minutes, et s'il est déconnecté, vous devrez vous reconnecter. (Le code source ne disparaît jamais lol) ・ Lors de la connexion, il vous sera demandé le code comme indiqué ci-dessous, alors accédez à l'URL pour obtenir le code!
・ Par souci de clarté, changez le nom de Untitled.ipynb. -Vous pouvez enregistrer à partir de la colonne de fichiers. Gardons-le diligent!
J'étais conscient de la conception orientée objet dans son ensemble. J'ai laissé le commentaire du code de base dans les commentaires.
import cv2
#------------Setting------------#
#Setting for using google drive
from google import colab
colab.drive.mount('/content/gdrive')
#Directory setting
b_dir='gdrive/My Drive/Edge/' #Setting working directory
#Experiment setting (Parameter setting for canny operator)
min_val=100
max_val=150
#Imput file setting
t_dir=b_dir+'Images/'
data='Caca'
ext='.JPG'
org_name=t_dir+data+ext
#Output file setting
canny_name=t_dir+data+'_Canny _'+str(min_val)+'_'+str(max_val)+ext
#------------Image processing------------#
#Image read
org=cv2.imread(org_name)
if org is None:
print('\n**********************************************************\n')
print(org_name+' cannot be read\n')
print('************************************************************\n')
else:
#Grayscale image generation
gray=cv2.cvtColor(org,cv2.COLOR_BGR2GRAY)
#Apply image operator
canny=cv2.Canny(gray,min_val,max_val)
#Save image
cv2.imwrite(canny_name,canny)
Tout d'abord, ci-dessous, nous importons OpenCV et définissons le répertoire.
La dernière ligne est Edge. Cela fait référence au nom du dossier que vous avez défini en premier, alors réécrivons-le avec le nom du dossier que vous avez créé en premier.
import cv2
#------------Setting------------#
#Setting for using google drive
from google import colab
colab.drive.mount('/content/gdrive')
#Directory setting
b_dir='gdrive/My Drive/Edge/' #Setting working directory
Ensuite, dans ce qui suit, les réglages des paramètres, les réglages du fichier image et les réglages du fichier image de sortie sont effectués.
Le premier point concerne les paramètres. Cette fois, nous utilisons la méthode Canny comme méthode de détection des bords. (Je n'expliquerai pas la méthode Canny dans cet article.) Ce paramètre est une valeur que j'ai définie pour pouvoir bien prendre un avantage avec cette valeur, vous êtes donc libre de le modifier. .. Le deuxième point concerne le réglage du fichier image. Je pense que vous avez téléchargé l'image dans le dossier Images, veuillez donc stocker l'image avant l'extension dans les données et l'extension dans ext.
#Experiment setting (Parameter setting for canny operator)
min_val=100
max_val=150
#Imput file setting
t_dir=b_dir+'Images/'
data='Caca'
ext='.JPG'
org_name=t_dir+data+ext
#Output file setting
canny_name=t_dir+data+'_Canny _'+str(min_val)+'_'+str(max_val)+ext
Mounted at /content/gdrive Si c'est sorti comme ça, c'est réussi! Consultez les images de mon disque. L'image avec détection de bord doit être sortie. Ensuite, comme le titre l'indique, j'ai détecté Poo dans l'image de profil comme un bord, alors veuillez voir le résultat.
Je suis désolé ...
Vive le bon travail! Je suis content si quelqu'un a été ensemble jusqu'à présent J'espère également que cet article vous expliquera comment Python peut le faire. Comme il s'agit de mon premier message, j'ai l'intention de le faire aussi soigneusement que possible, mais si vous avez des questions, des questions ou des erreurs, veuillez commenter. Je continuerai à écrire de nombreux articles tels que l'apprentissage automatique, alors suivez-moi si vous le souhaitez!