Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/36: Рейтинг темы: голосов - 36, средняя оценка - 4.72
1 / 1 / 0
Регистрация: 21.07.2013
Сообщений: 98

Расширение изображения с преобразованием наклонных дальностей в земные координаты

03.08.2013, 09:33. Показов 7356. Ответов 76
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеются два одномерных массива чисел. R и D: R размерностью 1024 и D - 10240 . R это наклонные дальности по земле. D это пересчет этих дальностей в земные координаты. A это амплитуды, есть картинка (снимок) это получается яркости. причем R и D соответствуют одинаковые амплитуды. то есть надо преобразовать (R,A) в (D,A). а как это организовать я еще не понял.
Вложения
Тип файла: txt А.txt (3.3 Кб, 9 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.08.2013, 09:33
Ответы с готовыми решениями:

создание контура изображения с последующим его преобразованием
1)Может кто помочь ссылкой на книгу/статью в которой подробно описывается создание контура. 2) а после этот контур нужно преобразовать в...

Искажение изображения дефокусировкой и восстановление двумерным преобразованием Фурье и регуляризацией Тихонова
не кидай большие картинки! закинь сначало не больше чем 100*100, считает не быстро

Преобразовать Юпитерские года в Земные
Добрый день. Стояла задача преобразовать Юпитерские года в Земные. Один Юпитерский год равен 12 Земным годам. Написал код, все...

76
1 / 1 / 0
Регистрация: 21.07.2013
Сообщений: 98
05.08.2013, 17:11  [ТС]
Студворк — интернет-сервис помощи студентам
ясненько

Добавлено через 12 часов 15 минут
два вопроса ,вопрос №1 - хочу все таки сделать так сначала значения амплитуды, потом нули.
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
clc; clear all;
format short g
n = 0:1024-1;
R = 933 + 1.4*n;
c = cos(600./(933+n*0.14));
D = 714.5 + n.*(0.14./c);
A = imread('2013.08.01_13.54_.bmp');
 
X = linspace(min(D), max(D), 10240);
Ai = zeros(size(A,1), size(X,2)); 
d = ones(size(D));
for i = 2:length(D)
    [u d] = min( abs(X-D(i)) ); 
    Ai(d) = A(i); 
end
 
imshow(uint8(Ai))
запускаю. получаю черную картинку. смотрю в workspace Ai он начиная с 17 столбца просто нули пишет.

вопрос №2.

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
clc; clear all;
format short g
n = 0:1024-1;
R = 933 + 1.4*n;
c = cos(600./(933+n*0.14));
D = 714.5 + n.*(0.14./c);
A = dlmread('ampl.txt');
Img = imread('2013.08.01_13.54_.bmp');
 
X = linspace(min(D), max(D), 10240); % новый расширенный массив
 
Ai = zeros(size(Img,1), size(X,2)); 
d = ones(size(D));
for i = 2:length(D)
    [u d(i)] = min( abs(X-D(i)) );     
    j = d(i-1):d(i); 
    Ai(:,j) = Img(:,i*ones(size(j))); % записываем столбец
end
imshow(uint8(Ai))
получаем сжатое изображение. если его расширить по вертикали то получим тот же рисунок просто большего масштаба. Может расширить по вертикали размера (40,10240).
0
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
05.08.2013, 17:33
Цитата Сообщение от anton_petrovi4 Посмотреть сообщение
запускаю. получаю черную картинку. смотрю в workspace Ai он начиная с 17 столбца просто нули пишет.
1.1 В строке 14 пропиши: Ai(d) = A(i-1);
1.2 Это не корректно, т.к. Ai и A - двумерные матрицы!
А во втором ошибка в строке 17.

За исходники бери мои последние программы!
0
1 / 1 / 0
Регистрация: 21.07.2013
Сообщений: 98
05.08.2013, 18:05  [ТС]
Цитата Сообщение от Зосима Посмотреть сообщение
1.1 В строке 14 пропиши: Ai(d) = A(i-1);
1.2 Это не корректно, т.к. Ai и A - двумерные матрицы!
не работает((
0
Эксперт по электронике
 Аватар для R2D2
939 / 839 / 121
Регистрация: 23.11.2012
Сообщений: 2,488
05.08.2013, 20:07
Что то мне подсказывает, товарищи, что Вам может пригодится вот эта функция.
0
1 / 1 / 0
Регистрация: 21.07.2013
Сообщений: 98
05.08.2013, 20:17  [ТС]
нет это не то , не надо мне преобразования из градусов в километры . но спасибо за помощь . мне надо просто отладить прогу, и я этим и занимаюсь.
0
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
05.08.2013, 21:22
Вот вариант с дополнением нулями:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
clc; clear all;
format short g
 
I = imread('2013.08.01_13.54_.bmp');
 
nx = 0:size(I,2)-1;
ny = 0:size(I,1)-1;
Rx = 933 + 1.4*nx;
Ry = 933 + 1.4*ny;
cx = cos(600./(933+nx*0.14));
cy = cos(600./(933+ny*0.14));
Dx = 714.5 + nx.*(0.14./cx);
Dy = 714.5 + ny.*(0.14./cy);
 
X = linspace(min(Dx), max(Dx), 10*size(I,2)); % новый расширенный массив
Y = linspace(min(Dy), max(Dy), 10*size(I,1)); % новый расширенный массив
 
B = zeros(size(I)*10); 
A = zeros(size(I,1), size(I,2)*10);
for i = 1:size(I,2)
    [u d] = min( abs(X-Dx(i)) ); 
    % d - номер столбца с единицами, номер элемента в массиве m
    % j = d(i-1):d(i); 
    A(:,d) = I(:,i); % записываем столбец
end
for i = 1:size(I,1)
    [u d] = min( abs(Y-Dy(i)) ); 
    % d - номер столбца с единицами, номер элемента в массиве m
    % j = d(i-1):d(i); 
    B(d,:) = A(i,:); % записываем повторяющиеся строки
end
imshow(uint8(B))
0
1 / 1 / 0
Регистрация: 21.07.2013
Сообщений: 98
06.08.2013, 07:40  [ТС]
как можно убрать минимальные значения яркости например от 0-100. а оставить от 100-255. ?
0
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
06.08.2013, 12:17
В исходном файле? а чем их заменить?
Вот пример, как делать все, что меньше 100, равным 100:
I(I<100) = 100;
0
1 / 1 / 0
Регистрация: 21.07.2013
Сообщений: 98
06.08.2013, 12:27  [ТС]
картинка получается темной , я хотел все яркости которые меньше 100 убрать.
0
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
06.08.2013, 12:31
что значит убрать? черноту дают нули между отсчетами
0
1 / 1 / 0
Регистрация: 21.07.2013
Сообщений: 98
06.08.2013, 12:46  [ТС]
да , получается что мы эти нули вставили и они же нам мешают(((
если расширять изображение по вертикали и горизонтали, то оно просто увеличиться в размерах. а мне надо чтоб изображение стало четче, а если сравнить оригинал и то что получилось оригинал более контрастен.
0
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
06.08.2013, 12:56
anton_petrovi4, четче изображение не станет! Тем более при увеличении размера - оно его еще больше исказит.
0
1 / 1 / 0
Регистрация: 21.07.2013
Сообщений: 98
07.08.2013, 16:25  [ТС]
почему в 33 строке ошибку пишет? файл в архиве.
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
clc; clear all;
format short g
 
I = imread('_google_maps4.bmp');
 
nx = 0:size(I,2)-1;
ny = 0:size(I,1)-1;
Rx = 933 + 1.4*nx;
Ry = 933 + 1.4*ny;
cx = cos(600./(933+nx*0.14));
cy = cos(600./(933+ny*0.14));
Dx = 714.5 + nx.*(0.14./cx);
Dy = 714.5 + ny.*(0.14./cy);
 
X = linspace(min(Dx), max(Dx), 10*size(I,2)); % новый расширенный массив
Y = linspace(min(Dy), max(Dy), 10*size(I,1)); % новый расширенный массив
 
B = zeros(size(I)); 
% расширяем по столбцам
d = 1;
for i = 1:size(I,2)
    [u d] = min( abs(X-Dx(i)) ); 
    % d - номер столбца с единицами, номер элемента в массиве m
    
    Ai(:,d) = I(:,i); % записываем столбец
end
% расширяем по строкам
d = 1;
for i = 2:size(I,1)
    [u d(i)] = min( abs(Y-Dy(i)) ); 
    % d - номер столбца с единицами, номер элемента в массиве m
    j = d(i-1):d(i); 
    B(j,:) = repmat(Ai(i,:),[length(j),1]); % записываем строку
   
end
imshow(uint8(B))
imwrite(uint8(B),'D:\matlab\17.png')
Добавлено через 2 минуты
смайлики

Добавлено через 1 час 34 минуты
вот файл
0
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
07.08.2013, 16:37
Файл отклеился но чувствую, что беда в том, что изображение цветное (поэтому матрица I - трехмерная)
Попробуй в строке 5 прописать: I = rgb2gray(I);
0
1 / 1 / 0
Регистрация: 21.07.2013
Сообщений: 98
07.08.2013, 16:54  [ТС]
да цветное.
Вложения
Тип файла: rar snimok.rar (1.59 Мб, 3 просмотров)
0
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
07.08.2013, 16:55
а пробовал то, что я тебе советовал?
0
1 / 1 / 0
Регистрация: 21.07.2013
Сообщений: 98
07.08.2013, 17:14  [ТС]
Error in ==> rgb2gray at 35
X = parse_inputs(varargin{:});

Добавлено через 2 минуты
??? Error using ==> imread at 374
File "_google_maps4.bmp" does not exist. вот так точнее
0
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
07.08.2013, 17:28
Ну дык файл лежит неведомо где или напутал с именем/расширением
0
1 / 1 / 0
Регистрация: 21.07.2013
Сообщений: 98
08.08.2013, 08:32  [ТС]
я понял в чем проблема , опять во мне ((( но результат меня не радует (((

Добавлено через 15 часов 1 минуту
??? Error using ==> rgb2gray>parse_inputs at 82
MAP must be a m x 3 array.

Error in ==> rgb2gray at 35
X = parse_inputs(varargin{:});

Error in ==> number3 at 5
I=rgb2gray(I);
вот такие ошибки((
вот код:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
clc; clear all;
format short g
 
I = imread('1527.bmp');
I=rgb2gray(I);
nx = 0:size(I,2)-1;
ny = 0:size(I,1)-1;
Rx = 933 + 1.4*nx;
Ry = 933 + 1.4*ny;
cx = cos(600./(933+nx*0.14));
cy = cos(600./(933+ny*0.14));
Dx = 714.5 + nx.*(0.14./cx);
Dy = 714.5 + ny.*(0.14./cy);
 
X = linspace(min(Dx), max(Dx), 10*size(I,2)); % новый расширенный массив
Y = linspace(min(Dy), max(Dy), 10*size(I,1)); % новый расширенный массив
 
B = zeros(size(I)*10); 
% расширяем по столбцам
d = 1;
for i = 1:size(I,2)
    [u d] = min( abs(X-Dx(i)) ); 
    % d - номер столбца с единицами, номер элемента в массиве m
    % j = d(i-1):d(i); 
    Ai(:,d) = I(:,i); % записываем столбец
end
% расширяем по строкам
d = 1;
for i = 2:size(I,1)
    [u d(i)] = min( abs(Y-Dy(i)) ); 
    % d - номер столбца с единицами, номер элемента в массиве m
    j = d(i-1):d(i); 
    B(j,:) = repmat(Ai(i,:),[length(j),1]); % записываем строку
end
imshow(uint8(B))
0
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
08.08.2013, 16:23
Дружочек, а этот 1527.bmp видать чернобелый?
огда давай сделаем универсальную штуку:
Matlab M
1
2
3
4
5
fname = '1527.bmp'; % путь и имя файла
I = imread(fname);
if ndims(I)==3 % если изображение цветное
   I = rgb2gray(I);
end
Эту красоту нужно воткнуть в начало, вместо строк 3-5.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.08.2013, 16:23

Расширение изображения
Есть форма с загрузкой изображения. Проблема в том, что загружаются только JPG. Как сделать так, чтобы и другие форматы загружал? ...

Расширение изображения при наведении
есть таблица, в ней ячейка фиксированной длины, например 100px, у нее стоит background_image, у картинки ширина 200px, стоит свойство...

Определить расширение загружаемого изображения
Здравствуйте. Подскажите, как определить расширение загружаемого изображения(.png, .jpeg)?

Как определить расширение изображения в формате byte[]
Доброго времени суток. Я работаю с Java и MS SQL 2008 R2. Возникла необходимость сохранять изображения в БД. Я так и не разобрался, как...

Найти проекции наклонных.
Сам по геометрии не шарю. Так что прошу Вас помочь) Заранее спасибо. http://s019.***********/i638/1204/4e/26fb10ecd502.jpg


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru