Sorry, I think you've been a victim of a known inconsistency---unfortunately, one I'm not sure how to address.
The transforms module uses a (x, y) coordinate convention to be consistent with most of the warping literature out there. But the rest of scikit-image uses a (row, column) convention.
from skimage import io, transform
import numpy as np
image = io.imread('image.jpg')
h, w = image.shape[:2]
rng = np.random.RandomState(0)
xs = rng.randint(0, w - 1, 76)
ys = rng.randint(0, h - 1, 76)
src_pts = np.column_stack([xs, ys])
dst_pts = src_pts
tform = transform.PiecewiseAffineTransform()
tform.estimate(src_pts, dst_pts)
out = transform.warp(image, tform)
import matplotlib.pyplot as plt
plt.imshow(out)
plt.show()