For those arriving from Google the above answer may have been true at the time it was written but as the docs describe it is no longer accurate. Passing a negative value to imread returns an array with an alpha channel.
In python this does the job:
>>> im = cv2.imread('sunny_flat.png', -1)
>>> im
array([[[ 51, 44, 53, 255],
[ 46, 40, 46, 255],
[ 40, 31, 36, 255],
...,
[ 24, 26, 36, 255],
[ 26, 28, 39, 255],
[ 15, 17, 27, 255]]], dtype=uint8)
>>> im[0][0] = np.array([0,0,0,0], np.uint8)
>>> im
array([[[ 0, 0, 0, 0],
[ 46, 40, 46, 255],
[ 40, 31, 36, 255],
...,
[ 24, 26, 36, 255],
[ 26, 28, 39, 255],
[ 15, 17, 27, 255]]], dtype=uint8)