Я работаю с обработкой изображений для электронной микроскопии, в основном со сценариями для цифровой микроскопии (DM), и недавно начал изучать Python из-за его более широкой универсальности, богатых открытых библиотек и кросс-платформенных возможностей.
Кто-нибудь знает, есть ли в Python (numpy) какие-либо аналогичные инструменты для индексации массивов 2D (изображение) или 3D (изображение спектра), подобных i-переменным DM?
i-переменные кратко представлены на странице 11 этого руководства по сценариям DM: http://portal.tugraz.at/portal/page/portal/Files/felmi/images/DM-Script/DM-basic-scripting_bs.pdf
Это простой способ индексировать любой похожий на изображение 2D- или 3D-объект, что очень удобно для обработки изображений, например, для создания функций маски.
Например, следующий DM-скрипт
image t1 := RealImage ("test1", 4, 5, 5)
image t2 := RealImage ("test2", 4, 5, 5)
image t3 := RealImage ("test3", 4, 5, 5)
t1 = irow
// the value in each pixel equals to the row index
t2 = iradius
// the value in each pixel equals to the radius
// (i.e., distance to the center pixel)
t3 = itheta
// the value in each pixel quals to the angle (radian)
// to the center pixel (i.e., angle in polar representation)
t1.showimage(); t2.showimage(); t3.showimage()
привести к следующим изображениям (выраженным здесь в электронной таблице или, скажем, в матричной форме):
t1 =
0 0 0 0 0
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
t2=
3.5355339 2.9154758 2.5495098 2.5495098 2.9154758
2.9154758 2.1213202 1.5811388 1.5811388 2.1213202
2.5495098 1.5811388 0.70710677 0.70710677 1.5811388
2.5495098 1.5811388 0.70710677 0.70710677 1.5811388
2.9154758 2.1213202 1.5811388 1.5811388 2.1213202
t3=
-2.3561945 -2.1112158 -1.7681919 -1.3734008 -1.0303768
-2.6011732 -2.3561945 -1.8925469 -1.2490457 -0.78539819
-2.9441972 -2.8198421 -2.3561945 -0.78539819 -0.32175055
2.9441972 2.8198421 2.3561945 0.78539819 0.32175055
2.6011732 2.3561945 1.8925469 1.2490457 0.78539819