Форум программистов, компьютерный форум, киберфорум
Наши страницы
Swift
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
mizim
0 / 0 / 1
Регистрация: 02.11.2012
Сообщений: 16
1

Представление изображения в памяти. Как?

21.10.2014, 19:28. Просмотров 1311. Ответов 7
Метки нет (Все метки)

Привет всем!

Понимаю, что по этому вопросу меня отошлют в другие ветки, например СИ, но всё же.
Вопрос такой: Что такое изображение в C++/Swift?

Поясню свой вопрос. С изображениями в программах работал исключительно в Matlab. Там всё весьма просто есть матрица NxMx3 или NxMx1. Сейчас хочу переписать одну свою программу из matlab'а на Swift. Смысл программы в том что, есть два индексных изображения, которые складываются между собой, а затем подсчитывается количество ячеек с определённым индексом. Затем одно изображение поворачивается и происходит новый пересчёт.

Не жду от Вас готового кода, просто хочется получить пояснение. Спасибо!

Make peace not war
Не бейте за swift. Я знаю, что я лох, которому лучше изучить C++
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2014, 19:28
Ответы с готовыми решениями:

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

Представление класса в памяти
Всем доброго времени суток! Подскажите ка,как класс представляется в...

Представление чисел в памяти!
нужна сделать реализацию числа в памяти получилось для одного числа, а как...

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

представление растрового изображения в бинарном виде
Добрый день имеется растровое изображение(jpg,png..etc), как средствами Qt...

7
Vorona
Peace 2 all shining faces
672 / 534 / 84
Регистрация: 05.03.2010
Сообщений: 1,283
22.10.2014, 23:22 2
изображение == матрица?
0
zulkis
684 / 611 / 43
Регистрация: 13.01.2011
Сообщений: 1,724
23.10.2014, 09:30 3
Vorona, ну теоретически - линейный массив
0
Vorona
Peace 2 all shining faces
672 / 534 / 84
Регистрация: 05.03.2010
Сообщений: 1,283
23.10.2014, 22:05 4

Не по теме:

zulkis, походу нужно учить матчасть :D
http://matlab.exponenta.ru/imageprocess/book5/6_1.php


mizim, ну если не сильно вдаваться в подробности, то самое простое - это циклы и массивы(многомерные)
синтаксис языка довольно несложный и похож на другие, так что труда вообще не должно составить - мигрировать уже готовые решения с одного языка на другой

можно копнуть в сторону операций с матрицами на java/c# (если на молодом swift еще не реализовывали) и просто переписать тут
знаю, на haskell есть очень простые и удобные функции для работы с многомерными массивами, там бы это вообще было просто реализовать, но синтаксис довольно таки отличается
0
mizim
0 / 0 / 1
Регистрация: 02.11.2012
Сообщений: 16
24.10.2014, 00:06  [ТС] 5
А можно чуточку подробней? (документацию на английском не понимаю, да и найти в ней найти не могу Привык к матлабовскому хэлпу.)

Проверил как представляется изображение:
C
1
2
var ImgData = UIImage(named:"rastr_6SG")
println(ImgData.size)
В консоле пишет: (256.0 , 256.0). Я так понимаю, что изображения всё-таки уже индексные? Плюс ко всему не могу вывести первый элемент матрицы (UIImage does not have a member name subscript). Как-то тяжко получается

И ещё вопросик. Не подскажите как в playground задать и вывести картинку, а то надоело экспериментировать с объектами)

P.S.: Прошу прощения за назойливость
0
zulkis
684 / 611 / 43
Регистрация: 13.01.2011
Сообщений: 1,724
24.10.2014, 09:25 6
Vorona, написал много всего, потом решил сократить.
Я хоть 10ти мерный массив вам создам, это не изменит того, как изображение в памяти хранится.
0
kievkao
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225
24.10.2014, 12:42 7
Цитата Сообщение от zulkis Посмотреть сообщение
Vorona, написал много всего, потом решил сократить.
Я хоть 10ти мерный массив вам создам, это не изменит того, как изображение в памяти хранится.
Правильно ж получается:
Если у нас есть двухмерный массив по адресу 0x123456, и мы обращаемся к его элементу array[x][y], то у нас выходит обращение к участку памяти по следующему адресу:
0x123456 + (x*размер хранимого элемента + y*размер хранимого элемента)

И аналогично для x-мерных массивов?

Добавлено через 8 минут
Не, сам уже понял, что фигню написал)) Буду сейчас на бумажке рисовать...

Добавлено через 8 минут
Вроде, выходит что-то типа такого, если мы создаем двумерный массив array[3][3] из unsigned char :

0x00 a a a
0x03 a a a
0x06 a a a

Следовательно, если мы обращаемся к array[1][2] (приняв за обозначение - [x][y]), то это будет обращение к участку памяти по адресу:
0x00 + x*sizeof(unsigned char)*общее кол-во элементов в размерности [x] + y*sizeof(unsigned char)
=
0x00 + 1*1*3 + 2*1 = 0x05
0
zulkis
684 / 611 / 43
Регистрация: 13.01.2011
Сообщений: 1,724
24.10.2014, 13:54 8
kievkao, Да, все верно.
0
24.10.2014, 13:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2014, 13:54

Представление двоичных чисел в памяти
Господа, помогите в поиске ответа на вопрос. Каким образом установить в каком...

Представление чисел в памяти ЭВМ
Добрый день. Прошу помощи в решении задачи на представление чисел в памяти ЭВМ....

Представление информации в памяти ЭВМ
дано число -112,5 вещественный, 67 формат 2 байта Как представляется это...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru