Antwort

3

könnten Sie so etwas wie verwenden:

patches = tf.extract_image_patches(tensor, [1, k, k, 1], ...) 
m_idx = int(k*k/2+1) 
top = tf.top_k(patches, m_idx, sorted=True) 
median = tf.slice(top, [0, 0, 0, m_idx-1], [-1, -1, -1, 1]) 

Zur Aufnahme gleich große mittlere Kerne und mehrere Kanäle, müssen Sie diese verlängern, aber das sollte man die meisten die Quere kommen.

0

Ab März 2017 eine einfachere Antwort (das unter der Haube arbeitet in ähnlicher Weise, wie Alex vorgeschlagen) ist, dies zu tun:

patches = tf.extract_image_patches(x, [1, k, k, 1], [1, k, k, 1], 4*[1], 'VALID') 
medians = tf.contrib.distributions.percentile(patches, 50, axis=3) 
Verwandte Themen