В Matlab У меня есть 3D-матрица (более 100 кадров 512x512). Моя цель - найти некоторые репрезентативные точки через всю гиперматрицу. Для этого я применил традиционный (и не очень эффективный) метод: я подразделяю большую матрицу на более мелкие субматрицы, а затем я ищу пиксель с самым высоким значением. После этого я изменяю эти относительные координаты этого самого пикселя в подматрице на глобальные координаты, относящиеся к большой матрице.Найти максимальный пиксель с помощью BLOCKPROC в Matlab
Теперь я перепроектирую алгоритм. Я видел, что для того, чтобы анализировать большую матрицу поблочно (это на самом деле то, что я делаю с моим старым алгоритмом), функция BLOCKPROC очень эффективна. Я прочитал документацию, но не знаю, как реализовать функцию «fun», чтобы извлечь пиксель с максимальным значением каждого блока. Заранее спасибо.
* Я пытаюсь получить координаты этих максимальных пикселей, ссылающихся на глобальную матрицу, я действительно не забочусь об их стоимости.
Я не совсем уверен, чего вы хотите достичь. Почему вы не используете функцию max() для каждого кадра? А затем используйте find() и ind2sub(). Как в этой теме: http://www.mathworks.com/matlabcentral/newsreader/view_thread/170759 – hesar
, потому что в каждом фрейме есть несколько из тех пунктов, которые я ищу. Слишком долго объяснять ... Вкратце: у меня есть изображения (3D-стек) из микроскопа, в котором много волокон (волокон коллагена). Я должен найти несколько точек (несколько пикселей в каждом кадре) и после этого интерполировать точки и восстановить волокна. Эти точки называются очками нуклеации, лучший способ их найти - это сделать то, что я объяснил в вопросе. – karl71
Я думаю, довольно просто, что я пытаюсь сделать. Разделите изображение на более мелкие изображения и получите координаты (по отношению к глобальному изображению) максимального пикселя каждого из этих меньших изображений. – karl71