Ok I got it myself ! I just forgot to go from lat./long. to x/y...
Here is some code if someone have the same trouble :
    LowLong = A % Lowest value of the longitude
    LowLat = B % Lowest value of the latitude 
    UpLong = C % Highest value of the longitude
    UpLat = D % Highest value of the Latitude
    img_long = [LowLong UpLong];
    img_lat = [UpLat LowLat];
    I=imread('path'); % reading the image using your path
    m_proj('mercator','longitudes',[LowLong UpLong],'latitudes',[LowLat UpLat]);
    hold on % Assign the projection you want (here mercator)
    [X,Y]=m_ll2xy(img_long,img_lat); % Assign long/lat to row/column of the matrix
    clf;
    image([X],[Y],I1,'CDataMapping','scaled');
    set(gca,'ydir','normal');
    m_grid('tickdir','out','linewi',2,'fontsize',14); %plot georeferenced grid
    m_gshhs_f('patch',[0.3 0.7 0.5]); % Patch the coast (making land appear) with different resolution (f=full, h=high, i=intermediate, c=crue)
   [data0,long0,lat0] = m_etopo2([Longb Longh Latb Lath]);
   testBath=data0 > 0 ;
   topo = fl_getBathy(-5,50,long0,lat0,testBath) %return 0 if sea, 1 in land




