diff --git a/03nov/final.jpg b/03nov/final.jpg new file mode 100644 index 0000000..263cbf4 Binary files /dev/null and b/03nov/final.jpg differ diff --git a/03nov/final2.jpg b/03nov/final2.jpg new file mode 100644 index 0000000..1600f42 Binary files /dev/null and b/03nov/final2.jpg differ diff --git a/03nov/main.py b/03nov/main.py index dcb9978..d47a208 100644 --- a/03nov/main.py +++ b/03nov/main.py @@ -1,4 +1,5 @@ from umage import load, save, show_image +from math import atan2, cos def grayscale(img_mat): """Transform an image into gray @@ -47,6 +48,33 @@ def dans_image(img_mat, row, col): return True return False +def calculate_direction(img1, img2): + """Calculate the image direction of 2 image that has been trough gx and gy of phobels formula + + :img1: x image of fobel + :img2: y image of fobel + :returns: matrix of direction + + """ + res = list() + for row in range(len(img1)): + res.append(list()) + for col in range(len(img1[row])): + res[row].append(atan2(img2[row][col][0], img1[row][col][0])) + return res + + +def dir_mat_to_img(mat): + """take a matrix with direction and transform it in image with direction hue """ + res = list() + for row in range(len(mat)): + res.append(list()) + for col in range(len(mat[row])): + res[row].append((round(256*cos(mat[row][col])), round(256*cos(mat[row][col] + 120)), round(256*cos(mat[row][col] - 120)))) + return res + + + if __name__ == "__main__": unit = [ [0, 1, 0], @@ -64,10 +92,20 @@ if __name__ == "__main__": [-2, 0, 0], [ 0, 1, 0], [ 0, 0, 2]] + + phobel1 = [ + [ 1, 0, -1], + [ 2, 1, -2], + [ 1, 0, -1]] + phobel2 = [ + [ 1, 2, 1], + [ 0, 0, 0], + [ -1, -2, -1]] + img = load('./myimg.jpg') new_image = grayscale(img) convolution(new_image, convolution2) - save(new_image, 'gray') - save(convolution(new_image, convolution1), 'convo1') - save(convolution(new_image, convolution2), 'convo2') - save(convolution(new_image, convolution3), 'convo3') + phob1_img = convolution(new_image, phobel1) + phob2_img = convolution(new_image, phobel2) + final = dir_mat_to_img(calculate_direction(phob2_img, phob1_img)) + save(final, 'final2')