tl;dr
a.shape[1::-1] # == (a.shape[1], a.shape[0])
問題
opencvなどで扱う画像の実体はnumpy.ndarrayだが、そのshapeはnumpy仕様に準じて(height, width, channel)になる。
しかし、opencv関数の引数に画像サイズを渡すときは(width, height)であることが多い。
なので愚直にnumpy.ndarrayの画像サイズをopnecv関数などに渡す場合、
(a.shape[1], a.shape[0])
みたいに表現せざるを得ず、少し冗長になってしまっていた。
解決策
pythonのスライス書式を使って、
a.shape[1::-1] # == (a.shape[1], a.shape[0])
とすれば(a.shape[1], a.shape[0])と等価な値を得られることに気づいた。