Russian Qt Forum
Апрель 19, 2024, 06:22 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Обработка 2D изображений, нужен совет.(Gerber форм&  (Прочитано 2036 раз)
VVN
Чайник
*
Offline Offline

Сообщений: 52


Просмотр профиля
« : Ноябрь 11, 2016, 08:56 »

Здравствуйте, Уважаемые.

Есть формат файла Gerber. Применяется для вывода на фотопринтеры. Нужно при изготовлении печатных плат.
По сути в формате, топология печатной платы описывается двумя парами координат между которыми проводиться линия.
Есть еще апертуры и прочее, но пока это не важно

Да данный момент я имею файлы в которых, линиями с парой координат, задана топология печатной платы.
Но суть не в этом.

Мне нужно это все отобразить не экране.

Это я сделал использовал QGraphicsView, QGraphicsScene, итемы свои пока не делал, обошелся простыми линиями.

Вопрос в следующем мне нужно найти границы проводников на плате.

Вот тут я и остановился.
Не знаю как это сделать лучше.

Вроде как нужно взять то что вывели не экран и обойти по кругу найдя полигон.

пробовал сделать что то типа
Код:
    QList<QPoint> pnList;
    QPoint pn;

    for(int x = 0; x < scene->width();x++)
    {
        for(int y = 0; y < scene->height();y++)
        {
            if(itemAt(x,y) == 0)
            {
                pn.setX(x);
                pn.setY(y);
                pnList.push_back(pn);
            }
        }
    }


Здесь в pnList будет список координат которые не относятся к итемам.
Значит это будут пустые места.

В принципе это работает, но страшно медленно.
Еще есть вопросы к трансформации координат.
С этим вопросом я еще не разобрался, но в файле Gerber разрешение минимум 3 знака после запятой.
Другими словами разрешение 0.001 мм и это тоже нельзя потерять.

Мне нужен совет как это можно сделать.

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

« Последнее редактирование: Ноябрь 11, 2016, 09:37 от VVN » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Ноябрь 11, 2016, 12:43 »

Уважаемый, специфика Вашей задачи мне неинтересна, что там за "топология", "проводники" и др - все это сугубо Ваши проблемы. Постарайтесь "отсечь" все эти ненужные подробности, напр
Цитировать
- есть облако точек на плоскости, найти минимальный (или минимальный выпуклый) полигон вмещающий все точки
Так пожалуйста, это популярная известная задача
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #2 : Ноябрь 11, 2016, 14:06 »

Вопрос в следующем мне нужно найти границы проводников на плате.
Посмотрите на:
QRectF QGraphicsScene::itemsBoundingRect() const
QRectF QGraphicsScene::sceneRect() const
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 22.