Filtre de Canny terminé; #7

Open
Darkan wants to merge 1 commits from filter_canny into master
Member

Ajout des fonctions utiles au filtre de Canny dans usefull_func.py : calculGradient, copyNullMatrix, tranform_angle, dltNoMaxima, get_norm, norm_voisin, seuillageHysteresis;

Pas de modification important dans sobel.py

En tout cas il fonctionne et reste quelque ajust à faire mais pour plus tard... :-)

Ajout des fonctions utiles au filtre de Canny dans [usefull_func.py](https://git.herisson.ovh/undefined_name/image_python/src/branch/master/imageEngine/filters/usefull_func.py) : `calculGradient`, `copyNullMatrix`, `tranform_angle`, `dltNoMaxima`, `get_norm`, `norm_voisin`, `seuillageHysteresis`; Pas de modification important dans [sobel.py](https://git.herisson.ovh/undefined_name/image_python/src/branch/master/imageEngine/filters/sobel.py) En tout cas il fonctionne et reste quelque ajust à faire mais pour plus tard... :-)
Darkan added 1 commit 2022-11-11 09:18:19 +01:00
Ajout des fonctions utiles au filtre de Canny dans 'usefull_func.py'
Pas de modification important dans 'sobel.py'
tonitch added the
enhancement
label 2022-11-11 12:37:45 +01:00
tonitch reviewed 2022-11-11 13:11:57 +01:00
@ -40,0 +16,4 @@
return contours
"""
Owner

ca ne fonctionne pas que tu l'ais mis en commentaire ?

ca ne fonctionne pas que tu l'ais mis en commentaire ?
Author
Member

Le code est bon mais ça marche pas, j'ai sûrement quelques trucs à régler dans mon calcul de convolution. Du coup je le laisse ça en attendant d'avoir corriger le truc.

Le code est bon mais ça marche pas, j'ai sûrement quelques trucs à régler dans mon calcul de convolution. Du coup je le laisse ça en attendant d'avoir corriger le truc.
tonitch marked this conversation as resolved
@ -21,0 +17,4 @@
for x in range(len(mat)):
for y in range(len(mat[0])):
coord_i = i - (len(mat) // 2) + x
corrd_j = j - (len(mat[0]) // 2) + y
Owner

Petite typo ici ?

Petite typo ici ?
@ -52,3 +57,4 @@
def pixel(img, i, j, default=(0,0,0)):
#i la colone et j la ligne
Owner

pourrais être x, y ou row, collumn pour être plus explicite?

pourrais être x, y ou row, collumn pour être plus explicite?
@ -72,2 +78,4 @@
def filtre_gaussien(mat_img):
mat_gauss = [
[2/159, 4/159, 5/159, 4/159,2/159],
Owner

tricheur haha

tricheur haha
@ -106,0 +117,4 @@
def calculGradient(filtred_image):
mask_x = [[1, 0, -1]]
mask_y = [[1],[0],[-1]]
Owner

tu peux pas appliquer une seule convolution en fesant une matrice normalement ?

tu peux pas appliquer une seule convolution en fesant une matrice normalement ?
Author
Member

Non, j'ai besoin de la valeur que donne les 2 matrices pour calculer le radient de l'angle de chaque pixel, et aussi calculer la norme.

Non, j'ai besoin de la valeur que donne les 2 matrices pour calculer le radient de l'angle de chaque pixel, et aussi calculer la norme.
Owner

ha ouai je confonds haha

ha ouai je confonds haha
@ -106,0 +136,4 @@
return norme_gradient, angle_normal_gradient
def copyNullMatrix(mat):
Owner

peut être fait en une ligne

nullmat = [[0 for i in j] for j in mat]

Je pense que c'est plus éfficace que de faire une copie puis ensuite de passer dans toute la matrice pour tout transformer

pire des cas tu peux le faire de manière plus explicite aussi

nullmat = list()
for i in range(len(mat)):
	nullmat.append(list())
	for _ in mat[i]:
    	nullmat[i].append(0)
return nullmat

ca fait la même chôse

peut être fait en une ligne ```python nullmat = [[0 for i in j] for j in mat] ``` Je pense que c'est plus éfficace que de faire une copie puis ensuite de passer dans toute la matrice pour tout transformer pire des cas tu peux le faire de manière plus explicite aussi ```python nullmat = list() for i in range(len(mat)): nullmat.append(list()) for _ in mat[i]: nullmat[i].append(0) return nullmat ``` ca fait la même chôse
Author
Member

Je suis pas encore assez à l'aise avec python pour savoir faire des trucs comme ça 😢

Je suis pas encore assez à l'aise avec python pour savoir faire des trucs comme ça 😢
Owner

alors la deuxième méthode est pour toi, ce que tu fais c'est une copie de de la matrice alors que tout ce que tu as besoin c'est de la taille ^^ ca va améliorer pas mal de faire la deuxième méthode que je t'ai montré

alors la deuxième méthode est pour toi, ce que tu fais c'est une copie de de la matrice alors que tout ce que tu as besoin c'est de la taille ^^ ca va améliorer pas mal de faire la deuxième méthode que je t'ai montré
@ -106,0 +284,4 @@
return mx
def Minim(mat):
mn = 1000
Owner

en vrai ca devrais pas poser de problème mais tu peux le faire de manière différente:

mn = mat[0][0]
for i in mat:
	for j in i:
    	if(i < mn):
        	mn = j
return mn

c'est un détail parce que je pense pas que tu vas avoir des valeurs supérieurs à 1000 dans tes matrice mais techniquement on sais jamais, ca peut être plus sur

en vrai ca devrais pas poser de problème mais tu peux le faire de manière différente: ```python mn = mat[0][0] for i in mat: for j in i: if(i < mn): mn = j return mn ``` c'est un détail parce que je pense pas que tu vas avoir des valeurs supérieurs à 1000 dans tes matrice mais techniquement on sais jamais, ca peut être plus sur
Owner

Quelques petit trucs que j'ai remarqué... j'ai pas tout regardé tho ^^

Quelques petit trucs que j'ai remarqué... j'ai pas tout regardé tho ^^
Darkan was assigned by tonitch 2022-11-11 13:12:58 +01:00
tonitch added this to the Avancement project 2022-11-11 13:13:02 +01:00
This pull request can be merged automatically.
You are not authorized to merge this pull request.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin filter_canny:filter_canny
git checkout filter_canny
Sign in to join this conversation.
No reviewers
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: undefined_name/image_python#7
No description provided.