Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2015, 13:31   #1
alexhao
Новичок
Джуниор
 
Регистрация: 10.11.2015
Сообщений: 3
По умолчанию Преобразование изображения

Здравствуйте.
Не знаю в какой ветке задать вопрос.
+Самое проблемное - трудно сформулировать конкретный вопрос-запрос.

Задача: Есть серия фотографий с изображением определенной детальки, которая со временем изменяется в размерах. Пусть, становится ширине.

Необходимо написать код, который будет считывать с изображения первоначальные размеры и определять на сколько увеличилась деталька в размерах.

При этом, данные размеры и изменения необходимо записать в любой текстовый файл.

Вопрос. в каком направлении копать? Может есть какие то программы, книги, материалы?
Хотя бы хотелось бы узнать, как все это назвать, чтобы попробовать найти в поисковиках.

Заранее спасибо за ответы
alexhao вне форума Ответить с цитированием
Старый 10.11.2015, 13:53   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ух йо... Изображения как я понимаю растровые?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.11.2015, 14:04   #3
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цифровая обработка изоброжений. Фотометрия.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 10.11.2015, 14:06   #4
alexhao
Новичок
Джуниор
 
Регистрация: 10.11.2015
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ух йо... Изображения как я понимаю растровые?
Да, растровые.

В данный момент накопал в интернете, что можно попробовать воспользоваться Mathlab, аппроксимировать изображение на более простые фигуры и вычислить площадь.
alexhao вне форума Ответить с цитированием
Старый 10.11.2015, 16:21   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Да, растровые.
Сложная задача. Точно не за пять минут решается.
Увы на твой вопрос у меня лично ответа нет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.11.2015, 19:39   #6
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Решал я как-то раз подобную задачу. Правда, решить её надо было "однократно", то есть, "входных" изображений у меня было всего 4 штуки (две детали до усадки и две после), поэтому я не писал никаких программ для пакетной обработки входящего потока данных, а в вашем же случае, как я понял, количество изображений не будет фиксированным числом.

Тем не менее, я поступал следующим образом.
1. В графическом редакторе обрезал исходное изображение по краям детали. Оставшийся фон надо убрать. Это нужно для следующего шага.

Сечение до усадки.jpg
1_.jpg

2. Перевёл изображение в двхуцветный формат, где есть только чёрные и только белые цвета, никаких промежуточных "серых". В итоге я получил чёрную деталь на белом фоне.

Before.jpg

Это была подготовка изображения к анализу.

3. Далее загрузил полученное изображение в MathCAD, используя функцию READBMP(<путь до изображения в кавычках>). Эта функция возвращает двумерный массив (матрицу), элементы которой в нашем случае будут принимать значения 255 или 0, каждое из которых соответствует белому и чёрному цвету соответственно. Полученный массив я храню в какой-то переменной.
4. Написал функцию, которая просто считает количество нулей в заданной матрице, после чего передал туда эту матрицу в качестве аргумента.
5. Полученное значение (количество нулей) я трактую, как площадь фигуры в пикселях.

Теперь мы может находить площадь фигуры.

Дальше по требованию, можно либо отношение двух полученных площадей, определив таким образом, во сколько уменьшилась/увеличилась площадь фигуры, либо определить на сколько процентов произошло изменение площади, приняв первую полученную площадь за 100%.

Вот и всё. В вашем случае это можно как-то автоматизировать, алгоритм я уже кое-как написал/изложил.

Последний раз редактировалось Вадим Мошев; 10.11.2015 в 19:44.
Вадим Мошев вне форума Ответить с цитированием
Старый 10.11.2015, 20:22   #7
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Такое за вечер делал. Сейчас с OpenCV всё проще. Я просто сглаживал и искал границу вдоль линии. Но у меня оптика была выверена.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 11.11.2015, 12:41   #8
alexhao
Новичок
Джуниор
 
Регистрация: 10.11.2015
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
Решал я как-то раз подобную задачу. Правда, решить её надо было "однократно", то есть, "входных" изображений у меня было всего 4 штуки (две детали до усадки и две после), поэтому я не писал никаких программ для пакетной обработки входящего потока данных, а в вашем же случае, как я понял, количество изображений не будет фиксированным числом.

Да, фотографий будет много. Вообще, будет сниматься видео, но, думаю, легче всего разделить видео на множество снимков.

Тем не менее, спасибо за алгоритм
alexhao вне форума Ответить с цитированием
Старый 11.11.2015, 12:46   #9
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Сообщение от Pavia Посмотреть сообщение
Такое за вечер делал. Сейчас с OpenCV всё проще. Я просто сглаживал и искал границу вдоль линии. Но у меня оптика была выверена.
Скажите, а как вы искали площадь фигуры, ограниченной этой линией? Проводили интерполяцию, после чего искали длину линии с помощью интегрирования?
Вадим Мошев вне форума Ответить с цитированием
Старый 11.11.2015, 14:20   #10
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Скажите, а как вы искали площадь фигуры, ограниченной этой линией? Проводили интерполяцию, после чего искали длину линии с помощью интегрирования?
Вы меня не правильно поняли. От точки курсора выпускались линии в разные стороны. Как только линии доходила до границы предмета она останавливалась. Я мерил длину этих линии(отрезков). Для мой задачи было достаточно. Вернее это скорее было условие задачи.

Площадь тогда также планировал искать, но не приходилось. К тому времени у меня уже был алгоритм волшебной палочки: волновой алгоритм с учётом допуска. Подсчёт пикселей сделать не трудно.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .

Последний раз редактировалось Pavia; 11.11.2015 в 14:26.
Pavia вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразование часов в числа, а так же преобразование время PeMeHb Microsoft Office Excel 5 19.10.2014 17:04
Геометрическое преобразование изображения Smogg Помощь студентам 6 29.12.2012 21:26
обработка изображения преобразование Фурье Ria Alva C++ Builder 0 06.06.2012 21:43
C++ Builder обработка изображения преобразование Фурье Ria Alva Помощь студентам 0 05.06.2012 20:31
обработка и преобразование изображения midiss C++ Builder 0 04.06.2012 14:52