So it appears, that annontaion('arrow',... is kind of annoying to work with, since it is based on a coordinate system of the figure window, and not the axis. I think there are two ways to get what you want:
Either, go to the FEX and get one of the many scripts that create arrows for you.
Or, you can do some math with the coordinates. This code here is assuming that your y-axis is reversed, as the image command does it, and that both axes start at 0.
axpos = get(gca,'Position');
xyl = [get(gca,'Xlim'); get(gca,'YLim')]*[-1 1]'
arrpos = [200 300; 150 250];
arrposnorm = diag(axpos(3:4))*[arrpos(1,:)/xyl(1); (1-arrpos(2,:)/xyl(2))];
I hope this is what you asked for, otherwise please give some more detail.