As I commented on my own fork, if numpy treats dtype errors as TypeError, shouldn't we do the same in skimage? I think the below use for ValueError makes more sense — something that can't be distinguished from the type info.