Как создать профиль интенсивности вертикальной линии (проекцию линии) с помощью кодирования?

Как создать профиль интенсивности вертикальной линии (проекцию линии) с помощью кодирования?

Показанный ниже код генерирует профиль интенсивности горизонтальной линии из изображения.

Есть ли код для получения профиля интенсивности вертикальной линии?
(Или нужно сначала повернуть изображение, а потом по горизонтали?)

И я знаю, что «половина минора» — это длина линии, которая генерирует профиль интенсивности, но я не знаю, что означает «1»?

И, нет ли числа или символа с учетом ширины строки?

Кроме того, профиль интенсивности линии, сгенерированный приведенным ниже кодом, не может отображаться как «исходный дисплей», начальная точка координаты Y не равна 0, в чем причина?

line_projection := CreateFloatImage ( "line projection", halfMinor, 1 )
line_projection = 0
line_projection[icol,0] += imgFlat
line_projection /= samples

person together    schedule 26.02.2016    source источник
comment
Привет! Пожалуйста, по возможности старайтесь ограничивать вопросы одним конкретным вопросом (кодированием). Это помогает формату вопросов и ответов на этом сайте. В идеале короткий вопрос = короткий ответ с хорошей маркировкой помогает другим пользователям находить ответы при поиске.   -  person BmyGuest    schedule 26.02.2016
comment
Спасибо за ваши предложения. Буду помнить и обращать внимание своим будущим постом. :)   -  person together    schedule 28.02.2016


Ответы (1)


Общий совет:

Если вы не уверены в значении параметров в команде, попробуйте ввести команду в отдельном скрипте, но с неправильными параметрами. Вы получаете сообщение об ошибке, но окно результатов дает вам полную подпись с зачастую более осмысленными именами параметров.

Если вы сделаете это с CreateFloatImage, вы получите:

RealImage createfloatimage( String title, RealNumber width, RealNumber height )

Как видите, второй параметр определяет высоту двумерного изображения, поэтому код вашего скрипта создает двумерное изображение размером [halfMinor x 1].

Проектирование:

Следующий скрипт выдает прогнозируемые интенсивности (среднее значение) как по вертикали, так и по горизонтали:

image front := GetFrontImage()
number sx,sy
front.GetSize(sx,sy)

image vProj := RealImage( "Vertical", 4, sx )
vProj[icol,0] += front
vProj *= 1/sy
vProj.ShowImage()

image hProj := RealImage( "Horizontal", 4, sy )
hProj[irow,0] += front
hProj *= 1/sx
hProj.ShowImage()
person BmyGuest    schedule 26.02.2016