Просмотр полной версии : Преобразование Радона
Shomurodov Shohruh
22.12.2011, 20:55
Уважаемые математики! Собрался заняться преобразованием Радона некой геометрической фигуры в Matlabe. Т.к. пользуюсь этой программой впервые, то возникли много вопросов. Прошу помощи тех, кто разбирается в ней.
И так есть задание:
Произвести преобразование Радона фигуры
https://img.uforum.uz/images/vgmbzxn8077552.png, (области между треугольником и внутренним прямоугольником имеют отличную от нуля значения) внутри области [30:30].
В скрипте описанным здесь (http://rrc.dgu.ru/res/matlab/imageprocess/book3/17/radon.html) на вход дается прямоугольная фигура, а как быть для сложных фигур не знаю. Можно ли внутри массива данных нарисовать эту фигуру, если да, то как, т.к. гугл не помог. Пока сделал топорно, вручную изменил цифры в массиве, но думаю, есть и получше решение.
Nadir Zaitov
23.12.2011, 11:00
Shomurodov Shohruh, наверное Шухрат Исмаилов знает как с этим работать. Я не знаю к сожалению.
Shuhrat Ismailov
23.12.2011, 19:40
Shomurodov Shohruh, наверное Шухрат Исмаилов знает как с этим работать. Я не знаю к сожалению.
Общую теорию интегральных преобразований знаю, но в Матлабе не делал никогда, так там интегральное преобразование понимается как работа над изображениями.
Shomurodov Shohruh
23.12.2011, 19:42
Общую теорию знаю, но в Матлабе не делал никогда
В принципе функция radon(i) делает это преобразование, проблема в размещении фигуры внутри массива. Какими методами можно это сделать?
Shuhrat Ismailov
23.12.2011, 20:13
Общую теорию знаю, но в Матлабе не делал никогда
В принципе функция radon(i) делает это преобразование, проблема в размещении фигуры внутри массива. Какими методами можно это сделать?
По-моемому у вас затруднения в формированиии изображения, а не в самом преобразовании.
У меня возникли вопросы.
1) Ваша фигура и есть " область между треугольником и внутренним прямоугольником" ? (то есть состоит из трех треугольничков?)
2) Угол в преобразовании фиксирован или их нужно все пересчитывать (от 0 до 179°)
Shomurodov Shohruh
24.12.2011, 07:03
По-моемому у вас затруднения в формированиии изображения, а не в самом преобразовании.
У меня возникли вопросы.
1) Ваша фигура и есть " область между треугольником и внутренним прямоугольником" ? (то есть состоит из трех треугольничков?)
2) Угол в преобразовании фиксирован или их нужно все пересчитывать (от 0 до 179°)
Да, проблемы именно с изображением.
Ответы:
1. Да, область внутри треугольника и внутреннего прямоугольника имеют ненулевые значение, тогда как вся остальная часть заполнена нулями.
2. Нужно все пересчитать, по одному углу я на экзеле посчитал бы.
Shuhrat Ismailov
24.12.2011, 11:17
Да, проблемы именно с изображением.
Ответы: 1. Да, область внутри треугольника и внутреннего прямоугольника имеют ненулевые значение, тогда как вся остальная часть заполнена нулями.
Задача приобретает другой смысл, не зависящий от преобразования Радона и поэтому Прошу поменять тему на более информативное "Формирование изображений на МатЛаб.
Теперь по существу.
Я так понял, что внутренний прямоугольник не важен, и можно рассматривать только треугольник?
Если внутренний прямугольник важен, то правильно ли я понял, что рассматривается следующее
"область внутри треугольника закрашена , область внутреннего прямоугольника - полутон , тогда как вся остальная часть не закрашена?
(пока пользуюсь красочной терминологией, к числам прейдем потом.
Шохрух, я думаю, что нужно в матлабе вместо операторов, описывающих прямоугольники, применять другие операторы, а не менять числа, как вы сделали.
Вы очень правильно делаете, что работаете над изображениями в Матлаб. В 2004 году в Шанхайском технологическом институте я видел какие китайцы фокусы над изображениями вытворяют (Акаемов отдыхает). Присмотрелся, оказывается , Матлаб рулит.
Nadir Zaitov
24.12.2011, 12:34
Shomurodov Shohruh, одно замечание касательно Преобразования Радона, вспомните, что оно аддитивно. Т.е. F(a+b)=F(a)+F(b).
Если вы область выложите из прямоугольников (приблизите очень узкими прямоугольниками, шириной в один пиксель), то преобразование Радона исходной области можно будет рассматривать как сумму преобразований радона от прямоугольников.
Shuhrat Ismailov
24.12.2011, 15:23
Shomurodov Shohruh, одно замечание касательно Преобразования Радона, вспомните, что оно аддитивно. Т.е. F(a+b)=F(a)+F(b).
Если вы область выложите из прямоугольников (приблизите очень узкими прямоугольниками, шириной в один пиксель), то преобразование Радона исходной области можно будет рассматривать как сумму преобразований радона от прямоугольников.
Я думаю, что на матлабе можно сформировать изображение непосредственно путем загрузки файла изображения. А дальше он будет работать по-пиксельно.
Shomurodov Shohruh
24.12.2011, 17:59
Если внутренний прямугольник важен, то правильно ли я понял, что рассматривается следующее
"область внутри треугольника закрашена , область внутреннего прямоугольника - полутон , тогда как вся остальная часть не закрашена?
Нет, внутренний прямоугольник не важен, но можно и попробовать с полутоном.
Я думаю, что на матлабе можно сформировать изображение непосредственно путем загрузки файла изображения. А дальше он будет работать по-пиксельно.
Я тоже так думаю, но как сделать не знаю :)
Вы очень правильно делаете, что работаете над изображениями в Матлаб. В 2004 году в Шанхайском технологическом институте я видел какие китайцы фокусы над изображениями вытворяют (Акаемов отдыхает). Присмотрелся, оказывается , Матлаб рулит.
Вообще, в геофизических обрабатывающих комплексах уже внутри некоторых процедур есть преобразование радона, все выполнимое на матлабе я сейчас рассматриваю как понимание сути процесса.
Shuhrat Ismailov
24.12.2011, 18:51
Я думаю, что изучив любой мануал по цифровой обработке изображений в среде MATLAB вы найдете сведения о загрузке изображений с целью формирования любой области I.
Я нашел следующий оператор IMREAD в указанном Вами справочнике:
http://rrc.dgu.ru/res/matlab/imageprocess/book3/3/imread.html
и здесь:
http://matlab.exponenta.ru/imageprocess/book5/10_0.php
Думаю, что можно написать код так (если что-либо напутал, поправьте, я не работал с компьютерными системами символьной алгебры):
% Пример демонстрирует преобразование Радона изображения из файла imgfile.tif.
% Формирование изображения.
I = imread('imgfile.tif')
imshow(I);
% Прямое преобразование Радона.
[R, xp]=radon(I, 0:179);
% Вывод на экран проекций на оси X, Y и
% под углом в 45°.
figure, plot(xp,R(:,1));
figure, plot(xp,R(:,46));
figure, plot(xp,R(:,91));
% Вывод на экран матрицы проекций.
iptsetpref(‘ImShowAxesVisible', 'on');
figure, imshow(0:179, xp, R, []);
Удачи!
vBulletin® v3.8.5, Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot