Как получить свойства каждого пикселя файла jpeg на SD карте?
- Войдите на сайт для отправки комментариев
Пт, 22/06/2018 - 11:36
Предположим, у нес есть растровый файл достаточно большого разрешения, который мы положили в SD карту. Как получить значение цветов RGB любого нужного пикселя картинки?
а причем тут ардуина? Ищите в гугле работу с конкретным типов файлов - на ПК и ардуине разницы нет. В любом случае читаем файл, раскодируем его в соответсвии с форматом и читаем свойства нужного пикселя. В зависимости от типа файла пиксель может быть кодирован явно или вычислятся
Ардуина нужна как раз, чтобы от компа уйти. А вот насчет декодирования - нет ли уже готовых решений для Ардуины?
Ардуина нужна как раз, чтобы от компа уйти. А вот насчет декодирования - нет ли уже готовых решений для Ардуины?
Ищи готовые решения на С/С++ - я тебе страшную тайну открою: Ардуина понимает эти языки.
Зато я не понимаю.))
Зато я не понимаю.))
Тогда ничего не получица.
Ардуина нужна как раз, чтобы от компа уйти. А вот насчет декодирования - нет ли уже готовых решений для Ардуины?
JPEG со сжатием достаточно тяжелый в обработке формат, а если еще и картинки большие - ардуина с ее 2к ОЗУ и достаточно медленной математикой может не потянуть, или это потребует нетривиальных усилий программиста. Проще взять малинку... там может вообще не придется программу писать, найдешь готовое решение. Или, хотя бы. взять "ардуину" помощнее - Мегу. Дуе или СТМ32
Ардуина нужна как раз, чтобы от компа уйти. А вот насчет декодирования - нет ли уже готовых решений для Ардуины?
JPEG со сжатием достаточно тяжелый в обработке формат, а если еще и картинки большие - ардуина с ее 2к ОЗУ и достаточно медленной математикой может не потянуть, или это потребует нетривиальных усилий программиста. Проще взять малинку... там может вообще не придется программу писать, найдешь готовое решение. Или, хотя бы. взять "ардуину" помощнее - Мегу. Дуе или СТМ32
Ну вот я на этом форуме как раз и для того, чтобы найти готовое решение. Будет решение -купить под него железо не проблема.))
И к тому же, если джипег тяжел - можно и другие форматы попробовть.
Ну вот я на этом форуме как раз и для того, чтобы найти готовое решение. Будет решение -купить под него железо не проблема.))
обратитесь в раздел "Ищу исполнителя"
Ну вот я на этом форуме как раз и для того, чтобы найти готовое решение. Будет решение -купить под него железо не проблема.))
обратитесь в раздел "Ищу исполнителя"
Обратился, там пока одни флудеры...
Самый просто для разбора - BMP, но места жрёт, сволочь!
А сколько конкретно? И в какой момент? Неужели больше 32 гигов?
А где в Ардуине 32Гига? Мошт, я не знаю чо?
Тебе уже несколько человек сказали, похеру, что карта памяти, хоть на терабайт, распаковываться рисунок должен в ОЗУ, а его 1 КИЛОБАЙТ, туда даже 1 строка рисунка НЕ ВЛЕЗЕТ. Тем более, если JPEG, который распаковывается вапще не построчно, а блоками.
А где в Ардуине 32Гига? Мошт, я не знаю чо?
На SD-карте, ёмана. Она же вся в память проецируется - не знал?
А сколько конкретно? И в какой момент? Неужели больше 32 гигов?
автор, вы бредите. Если картинки у вас больше 20-30к (КИЛОБАЙТ!!!) - забудьте об ардуине, даже самая мощная не потянет.
распаковываться рисунок должен в ОЗУ,
Вот BMP как раз можно хоть по пикселу дёргать - он не упакованный, так что и распаковывать нечего.
А сколько конкретно? И в какой момент? Неужели больше 32 гигов?
Вы издеваетесь?
Отрывайте свою картинку в любом сраном пэйнте, говорите "сохранить как BMP" и любуйтесь. Я что ли за Вас это делать буду?
Т.е. для BMP большая оперативка не нужна? А как получить в скрипте необходимый пиксель?
А как получить в скрипте необходимый пиксель?
Що, знову? То Вы размер файла сами посмотреть не можете, то вот теперь. Смотрите, блин! Может Вам ещё пол помыть? Сами то что-то делать собираетесь?
Я сегодня необычно добр. Троллить не буду. Жарко, годовщина тргичная, опять же... Неправильное время для издевательства над ближним.
ТС (Топик стартер, это ты, Мурал), уважаемый!
Ты вот пришел и сюда и в коммерческий раздел с тупейшим вопросом. О чем тебе и сказали образованные люди.
Верю, что не со злым умыслом, а просто по незнанию и детской скрытности.
Так вот открой душу - что ты изобретаешь? Даже если будут троллить и глумиться, я - так точно буду, все равно дадут РЕАЛЬНО много полезных советов.
Ты понимаешь, сколько тут люди знают о контроллерах, микросхемах, СистемОнЧипах и прочих малинах с апельсинами?
----
С вами, новичками, очень тяжело, потому и начинают общаться с вами - часто с глума. Пока вытянешь идею, сам уж не рад, что связался.
Какой-то принтер, зачем-то распаковывать файл на неподходящем железе? В чем цимес?
Если комп - дорого, то подходящий АРМ, например AllWinner типа Апельсинки, стоит 500-600 рублей в минималке. Скорость головки и память на 1 строку - СТМ32Ф4 - точно хватит, а может Ф1. Цена - те же 300-400 руб. Ф1 - 100р.
Что-то из твоей задачи, возможно, потянет и ардуинка (имееццо ввиду классика типа уно-нано-мега). Только выбрал ты ее, быстрее всего, просто потому, что ничего другого не знаешь... а мы тут - знаем. Глумимся - по-доброму, потому, что все вышесказанное мною, тут все понимают. Я - вот добрый сегодня, и тебе тоже разъяснить решил.
Уфффф...
Я спрашиваю не про С, в С# у меня уже есть отслеживание пикселя, но кардинально другим способом. Я спрашиваю про скетч Ардуино. Итк, еще раз вопрос -как получить параметры необходимого пикселя растрового файла средствами исключительно ардуино. Из обсуждения знатоков этого дела я вижу 4 противоречивых варианта
1.Никак
2 Предварительной обработкой файла сторонней программой с переводом в какой-то другой вид наподобие g-кода,но не векторный. С радостью изучил бы способ,если бы советчик был бы блее конкретен.
3. Формат BMP не требует конвертации и получить можно свойство любого пикселя. К сожалению,советчик пишет много букв, но на вопрос как не отвечает
4. Просто многобукв про крутизну здешних обитателей и необходимость открыть им душу.
Мурал, если вы ждете, что кто-то напишет вам код - не рассчитывайте. Мы можем подсказать, где искать информацию для самостоятельного изучения вопроса, а готовый код пишут в разделе "Ищу исполнителя"
В разделе Ищу исполнителя ситуация не лучше, там одни тролли, как и здесь. А если ваш совет - см Гугл, то стоило ли так много про это писать? Когда незнакомый человек, к примеру, у меня спрашивает дорогу я или говорю, что не знаю или обьясняю, как могу, хотя мог бы поиздеваться и поглумиться и даже специально его направить в неправильную сторону, ибо он новичок. А после такой реакции я уже вряд ли буду заказывать программу на данном ресурсе, поскольку амбиции я здесь увидел, а компетентности и даже способности внимательно прочитать вопрос -нет.
4. Просто многобукв про крутизну здешних обитателей и необходимость открыть им душу.
Дебил, блин! Объясни, что ты изобретаешь и тебе скажут на чем это делать.
JPEG раскодировать на ардуино практически невозможно, как невозможно успеть управлять печатающей головкой... опять же - на какой сторости печати?
Если у тебя стоит задача - обязательно испольтзовать AtMega AVR контроллер, то поясни задачу, можно будет поискать подходящие пути.
Какие "свойства пикселя" в BMP файле, мля? просто читаешь значения RGB и все, описание формата за тебя искать надо?
Готовый код для Ардуино для чтения BMP? - очень врядли кто-то занимался подобной херней, но нужно проверить в Гугле, на английском. Сам не способен проверить?
вот первая выдача гугла устаивает?
Этого нельзя делать БЛИН!!!! До обращения на форум?????
Из обсуждения знатоков этого дела я вижу 4 противоречивых варианта
...
Вобщем, ни одного дартаньяна.
Предлагаю к воспроизведению следующую реплику: "Зачем этот форум, если на нем даже простую вещь объяснить не могут"
Может, побыть за Д'Артаньяна сегодня :)))
Но боюсь, даже и это не спасёт. JPG же обычная ардуина Uno/Nano распаковать не потянет, там декодеру нужна таблица размером больше 2 кб в памяти.
PS А, перечитал первый пост
Можно всю систему упростить, класть на SD просто сырой raw (если известны измерения картинки), по три байта на пиксель, и потом считывать их и анализировать, типа r = read_byte( fseek( width*col*3 + row*3 ) ), g = read_byte( fseek( width*col*3 + row*3 + 1) ) etc. Но сделать тут import SuperRawReader, как в шарпе, не выйдет.
Я спрашиваю не про С, в С# у меня уже есть
Причём тут С# - я Вам дал с полсотни ссылок, где это делается на С++ (на том самом языке, на котором программируется Ардуино).
но на вопрос как не отвечает
Я был уверен, что ответил. Дал ссылки с примерами. В примерах пиксели отлично читаются.
Если Вы считаете, что я не ответил, сформулируйте толком, что Вам нужно. Вам нужен готовый скетч для Вашей задачи? Или что?
[/quote]
Дебил, блин! Объясни, что ты изобретаешь и тебе скажут на чем это делать.
JPEG раскодировать на ардуино практически невозможно, как невозможно успеть управлять печатающей головкой... опять же - на какой сторости печати?
[/quote]
От дебила слышу. Я УЖЕ печатаю, используя Ардуино, как контроллер.
Кроме того, я не говорил, что мне нужно непременно раскодировать сразу ВЕСЬ файл, придурок, а потом его в таком виде хранить в оперативке, я согласен на кусочки, одна строка самого большого файла спокойно влезает.
Библиотека твоя сраная имеет задачу показывать что-то на экранчик и эту библиотеку все тупо и юзают не один год уже. Ты читать умеешь? Я что-то про экранчик спрашивал?
Короче, счастливо остваться...))
Библиотека твоя сраная имеет задачу показывать что-то на экранчик
Гы! Это, конечно, полностью меняет код самого jpeg декодера.... ;) ;) ;)
Эх... давненько я не встречал такой сплав тупизны, брехни и амбиций... в коллекцию, АднАзначнА!
Всего полджня срача и ардуина уже начала печатать. Боюсь представить, что будет к понедельнику.
Чёт фееричность в последние дни зашкаливает. Футбол что ли влияет?
Ребята! Мне интересно, что они (новички) так жмутся объяснить суть своих задумок? Это они так стесняются или реально верят, что изобрели что-то типа автодворников и щас кааа-ак запатентуют и будут всю оставшуюся жисть срать на золотой унитаз?
Да, я не заметил ссылку, спасибо, сейчас изучаю.
Пока вижутолько обработку блоков.
будут всю оставшуюся жисть срать на золотой унитаз?
Если на ардуине такой проджект сделают, то будут именно "на" ))
Можно всю систему упростить, класть на SD просто сырой raw (если известны измерения картинки), по три байта на пиксель....
Вот ваше предложение выглядит самым разумным пока. А чем лучшеt SuperRawReader?
А чем по большому счёту raw отличается от BMP? Кроме того, что BMP любой просмотрщик показать может и никаких размеров заранее знать не надо?
Тем, что я его только что выдумал :) Но если не принимать это в расчёт, то любой готовый класс лучше уже тем, что не придётся самому его писать.
А чем по большому счёту raw отличается от BMP? Кроме того, что BMP любой просмотрщик показать может и никаких размеров заранее знать не надо?
У BMP есть заголовок, нужно отматывать смещение, у него выравниваются байты по границам, у него биты на пиксель надо смотреть в заголовке, он может быть сжат RLE или ещё чем-нибудь. Но так-то, конечно, одна фигня. :)
Тем, что я его только что выдумал :) Но если не принимать это в расчёт, то любой готовый класс лучше уже тем, что не придётся самому его писать.
[quote=ЕвгенийП]
Тут, похоже, фокус в том, что никто этой задачей не заморачиваался и готовых классов просто нет. Конвертор jpega японец написал, но он блоковый. Параметры файла он получает общие, а потом теми же блоками гонит на экран.
Мне же надо просто rgb пикселя по его координатам, а размеры файла я знаю просто потому что готовлю его в фотошопе.
Единственный риск-скорость обмена информацией с SD.
Нет, я точно Д'Артаньян. Я же привёл вам пример, да и другие тоже привели. Открываем bmp файл, вычитываем служебную информацию, далее (тут нужно будет дописать) по координатам и разрешению определяем смещение в файле, делаем fseek(), читаем сколько нужно байт, и выдираем из получившегося RGB или BGR то, что нужно. Скорость обмена с картой невысока, но fseek и пару read много времени не займут.
Теперь яснее. Буду пробовать.
Ребята! Мне интересно, что они (новички) так жмутся объяснить суть своих задумок?
Может очередной студент делает дипломную работу? Иного разумного объяснения для такого бредовейшего проекта трудно придумать. Хочешь отвязаться от компа -дойди до ближайшего эльдорадо, купи за три тыщи принтер, который печатает любые файлы с флешки.
PS: Я считаю что не стоит помогать людям, которые не хотят объяснять суть задумок.
Может очередной студент делает дипломную работу? Иного разумного объяснения для такого бредовейшего проекта трудно придумать. Хочешь отвязаться от компа -дойди до ближайшего эльдорадо, купи за три тыщи принтер, который печатает любые файлы с флешки.
ну почему обязательно студент? - вполне возможно, что человек изобретает гравировальный станок или печать по ткани, к примеру
PS: Я считаю что не стоит помогать людям, которые не хотят объяснять суть задумок.
скорее не стоит помогать наглым халявщикам и тупицам. А что касается "сути задумок" - был бы умный, придумал бы логичное обьяснение :)
Я уже приводил пример- к вам подходит прохожий с просьбой подсказать дорогу, поскольку у вас на майке написано "Помогаю". А вы в ответ -чувак, ты не в курсе, что существуют карты? Он вам - я в вашем городе впервые, а карты у меня устаревшие - А вы, ну ты дебил! Дожил до таких лет и не разу здесь не бывал! Езжай обратно в свой Урюпинск! Я ж тебе махнул рукой На север, а ты, блять, подробности тебуешь! тебя ЧТО,БЛЯТЬ ЗА РУЧКУ ДОВЕСТИ! За ручку не надо, хотя бы ориентиры. А ты, сук, ЗАЧЕМ в наш город приехал! Отчитайся, урод! ЗА КАКОЙ ТАКОЙ НАДОБНОСТЬЮ! Нам, помогающим, оченна интерено с кого перепугу ты сюда приперся, пока не скажешь, хиляй отсель, а то,ищь, выгоду, сукаа ищет, золотой унитаз в наших весях, да и помогаем мы только умным, а глупым - нет, не опускаемся.. а ты, чувак, тест не пршел. Это наше консолидированное мнение, чтоты дебил, раз ни разу здесь не был и помощи не достоин.
Гопник вы ардуинский, другими словами.
Гопник вы ардуинский, другими словами.
А ты чё такой, дерзкий?
На ком тут написано "Помогаю", признавайтесь.
Кстати, про разумные мысли. Каких-то несколько часов назад товарищ начал семёна макать в лужу, когда тот ему про raw-формат написал: "Не надо никакога ро, читаем файл, раскодируем его в соответсвии с форматом и читаем свойства нужного пикселя. В зависимости от типа файла пиксель может быть кодирован явно или вычислятся. Можно выбрать формат попроще." #7
А щас вона чо - уже и raw подходит.
О, аллегории. Общаться с людьми, которые способны мыслить аллегориями - это уже хорошо. Позвольте чуть подкорректировать: первый человек махнул рукой в нужную сторону, второй, третий, четвертый и пятый не просто махнули, но уточнили цель, поскольку знают оптимальные маршруты к ней по дворам, ещё один достал свою карту и показал путь до улицы, осталось только найти на ней дом, а вы их всех за это гопниками называете :) А ведь вы просто не знаете карту этого города и не хотите учить, да и точку назначения не хотите называть, как же помочь-то тут пройти?
На ком тут написано "Помогаю", признавайтесь.
Садман41, этот "настенный" (типа "мурал") на совесть давить пытаиццо ;). У перод! Флаг в руки! И барабан.
На всякий случай: мне 49 лет и я, в безумные 90-е, был главбухом мелкого банка.... мне уже никогда и ни за что не станет стыдно ;)... Чс-слово! ;) ;) ;)
---------------
ЗЫ: пришла жена, спрашивает: "Кого мочишь?". Да вот, говорю, меня тут пристыдить пытаются.
"Я, бывает, и сама бы рада была, но это абсолютно бесперспективное занятие... ну как онанизм, только еще глупее".