#!/usr/bin/env python2 # -*- coding: utf-8 -*- """ Created on Fri Oct 6 18:45:50 2017 @author: valerie http://docs.dichotomies.fr/2014/informatique/travaux-pratiques/traitement-d-image/ http://www.scipy-lectures.org/advanced/image_processing/ """ import numpy as np import matplotlib.pyplot as plt from scipy import misc #from scipy.misc import imread #from scipy.ndimage import imread import os os.chdir('/users/valerie/Dropbox/ENSEIGNEMENT/PYTHON/PROJET') damier = misc.imread("damier-ng.jpeg") damier = imread('damier-ng.png') damier.shape plt.imshow(damier,cmap='gray') # Intensité des pixels def inverse_intensity(im): im_temp = im.copy() im_temp = 255-im_temp return(im_temp) plt.imshow(inverse_intensity(damier),cmap="gray") #plt.savefig('/users/valerie/Dropbox/ENSEIGNEMENT/PYTHON/PROJET/im_inv_gray.png') plt.show() # Bord noir def bord(im,nb_pixels,graylevel = 0): im_temp = im.copy() im_temp[:,:nb_pixels] = 0 im_temp[:,-nb_pixels:] = 0 im_temp[:nb_pixels,:] = 0 im_temp[-nb_pixels:,:] = 0 return(im_temp) plt.imshow(bord(damier,10),cmap="gray") #plt.savefig('/users/valerie/Dropbox/ENSEIGNEMENT/PYTHON/PROJET/im_bord.png') plt.show() # Masque def masque(im,pos,lar,lon): im_temp = im.copy() im_temp[pos[0]:pos[0]+lon,pos[1]:pos[1]+lar] = 255 return(im_temp) plt.imshow(masque(damier,[300,300],300,100),cmap="gray") #plt.savefig('/users/valerie/Dropbox/ENSEIGNEMENT/PYTHON/PROJET/im_masque.png') plt.show() im1 = masque(bord(inverse_intensity(damier),10),[300,300],300,100) plt.imshow(im1,cmap="gray") # Miroir def mirroir(im,vertical=True): im_temp = im.copy() if vertical: im_temp = im_temp[:,np.arange(im_temp.shape[1]-1,0,-1)] else: im_temp = im_temp[np.arange(im_temp.shape[0]-1,0,-1),:] return(im_temp) plt.imshow(mirroir(damier),cmap="gray") #plt.savefig('/users/valerie/Dropbox/ENSEIGNEMENT/PYTHON/PROJET/im_mirroir.png') plt.show() plt.imshow(mirroir(damier,False),cmap="gray") #plt.savefig('/users/valerie/Dropbox/ENSEIGNEMENT/PYTHON/PROJET/im_mirroir_hor.png') plt.show() # Filtrer K = np.array([[1,2,4,2,1],[2,4,8,4,2],[4,8,16,8,4],[2,4,8,4,2],[1,2,4,2,1]])/100.0 def filtrer(im,K): im_temp = im.copy()*0 s = (K.shape[0]+1)/2 for i in range(s,im.shape[0]-s): for j in range(s,im.shape[1]-s): im_temp[i,j] = np.sum(K*im[i-(s-1):i+s,j-(s-1):j+s]) return(im_temp) visage = misc.imread('manga1.jpg') plt.imshow(visage[:,:,0],cmap="gray") #plt.savefig('/users/valerie/Dropbox/ENSEIGNEMENT/PYTHON/PROJET/visage_init.png') plt.imshow(filtrer(visage[:,:,0],K),cmap="gray") #plt.savefig('/users/valerie/Dropbox/ENSEIGNEMENT/PYTHON/PROJET/visage1.png') plt.imshow(filtrer(filtrer(filtrer(filtrer(filtrer(visage[:,:,0],K),K),K),K),K),cmap="gray") #plt.savefig('/users/valerie/Dropbox/ENSEIGNEMENT/PYTHON/PROJET/visage_flou.png') Gx = np.array([[-1,0,1],[-2,0,2],[-1,0,1]]) #effet relief G = np.array([[-1,-1,-1],[-1,8,-1],[-1,-1,-1]]) #effet relief Gy = np.array([[-1,-2,-1],[0,0,0],[1,2,1]]) #effet relief plt.imshow(255-filtrer(damier,Gx),cmap="gray") #plt.imsave('/users/valerie/Dropbox/ENSEIGNEMENT/PYTHON/PROJET/damier_contour.png', # 255-filtrer(damier,Gx),format = 'png',cmap = plt.cm.gray) plt.imshow(filtrer(255-filtrer(damier,Gx),K),cmap="gray") #plt.imsave('/users/valerie/Dropbox/ENSEIGNEMENT/PYTHON/PROJET/damier_contour_flou.png', # filtrer(255-filtrer(damier,Gx),K),format = 'png',cmap = plt.cm.gray) def photomaton(im): im_temp = im.copy() ii = 2 sl = im.shape[0] % ii sL = im.shape[1] % ii im_temp = im_temp[sl:(im.shape[0]+1),sL:(im.shape[1]+1)] dl = int(im_temp.shape[0]/ii) dL = int(im_temp.shape[1]/ii) im_photomaton = im_temp.copy() im_photomaton[:dl,:,:] = im_temp[range(0,im_temp.shape[0],2),:,:] im_photomaton[:(dl),:dL,:] = im_photomaton[:(dl),range(0,im_temp.shape[1],2),:] im_photomaton[dl:,:,:] = im_temp[range(1,im_temp.shape[0],2),:,:] im_photomaton[dl:,:dL,:] = im_photomaton[dl:,range(0,im_temp.shape[1],2),:] im_photomaton[:dl,dL:,:] = im_photomaton[:dl,:dL,:] im_photomaton[dl:,dL:,:] = im_photomaton[:dl,:dL,:] return(im_photomaton) starwars = misc.imread('starwars.jpg') plt.imshow(photomaton(starwars)) plt.imshow(photomaton(photomaton(starwars))) tr = misc.imread("tranquility.png") tr_ref = misc.imread("tranquility.png") plt.imshow(tr) A = 105 Abin = bin(A) C = 96 Cbin = bin(C) Bbin = Abin[:5]+"0000" B = int(Bbin, 2) # On écrit un décodeur B = np.zeros(255) for k in range(255) : B[k] = int(bin(k)[:5]+"0000", 2) pays = imread('paysage_zen.png') def decode(im) : im_temp = np.reshape(im,im.shape[0]*im.shape[1]*im.shape[2]) for k in range(256): ind = np.where(im_temp==k)[0] faible = bin(k) tmp = int(bin(k)[5:]+faible[-4:].replace('b','0'), 2) #tmp = int(bin(k)[4:]+"0000", 2) im_temp[ind] = tmp #int(bin(k)[:5]+"0"+bin(tmp)[2:5], 2) im_new = np.reshape(im_temp,(im.shape[0],-1,im.shape[2])) return(im_new) im_new = decode(pays) plt.imshow(im_new) plt.imshow(tr)