Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подсчет пятен, Описание темы 
:(
    Опции темы
Mephisto
  Дата 1.10.2003, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


Профиль
Группа: Завсегдатай
Сообщений: 1818
Регистрация: 27.8.2003
Где: Питер

Репутация: нет
Всего: 34



Если кто может помочь алгоритмом, то заходите Сюда.
PM   Вверх
neutrino
Дата 1.10.2003, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



Приветствую!

Все, что касается алгоритмики, остается в этом форуме.

В твоем случае можно применить алгоритм Дийкстра. Помечать каждое пятно, скажем цифрой -1. И искать следующую точку с цифрой не равной -1 и не равной цифре фона. Например 0. Алгоритм в самом тупом виде может выглядеть так:

цикл I от 0 до (n-1)
цикл J от 0 до (m-1)
p[I,J]=-1 => следующая итерация цикла
p[I,J]=0 => следующая итерация цикла
Диикстра(I,J)
конец по J
конец по I

<Диикстра(целые И, Ж)>
Тут собственно алгоритм Дийкстра, только не нужно нумеровать шаги, а только писать в ячейках -1.

Но он медленно будет работать. Правда его можно хорошенько оптимизировать.


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
neutrino
Дата 1.10.2003, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



А как картинку в эти цифры преобразовать, это зависит от постановки задачи. Например: какого цвета пятна и т.д.


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
Mephisto
  Дата 1.10.2003, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


Профиль
Группа: Завсегдатай
Сообщений: 1818
Регистрация: 27.8.2003
Где: Питер

Репутация: нет
Всего: 34



Цитата
какого цвета пятна

Спаибо что ответил, но есть небольшая проблема. Ты меня поймешь если зайдешь на мою домашн. страничку и нажмешь ссылку Grafit Mediumconfused.gif

Это сообщение отредактировал(а) U-Boot - 4.10.2003, 12:21
PM   Вверх
stab
Дата 2.10.2003, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: нет
Всего: 48



и что надо тут (http://grafitchem.narod.ru/Resize_of_Grafit.htm) найти? обведи в фотошопе smile.gif


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
neutrino
Дата 2.10.2003, 08:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



Вот настряпал по моему алгоритму программку. Довольно быстро все работает. Я неучел тот момент, что когда я помечаю пятно, второй раз по нему я не прохожу. Теперь все нормально. Для определения пятна я задал такие условия:
1) ячейка должна быть ненулевой
2) значение меньше пяти

Как у тебя там определять относится ли точка к пятну, ты должен знать сам. В этом алгоритме также учтена возможность пятен с общей границей разного цвета. Вот код:

Цитата

#include <iostream.h>
const n=10, m=10;

int P[n][m]={
    {0,0,0,0,0,0,0,0,0,0},
    {0,1,1,1,5,0,0,0,0,0},
    {0,1,1,1,5,5,0,0,0,0},
    {0,0,1,1,5,5,5,0,0,0},
    {0,0,2,2,2,2,5,5,0,0},
    {0,0,2,2,2,2,5,5,0,0},
    {0,0,9,2,2,5,5,5,5,0},
    {0,9,9,9,0,0,3,3,3,0},
    {0,9,9,9,0,0,3,3,3,0},
    {0,0,9,0,0,0,3,3,3,0}
};
int PCnt=0;

void Dijkstra(int i, int j, int V) {
    if (P[i][j]==V) {
        P[i][j]=-1;
        Dijkstra(i, j-1, V);
        Dijkstra(i+1, j, V);
        Dijkstra(i, j+1, V);
        Dijkstra(i-1, j, V);
    }
}

void main() {
    for (int i=0; i<n; i++) {
        for (int j=0; j<m; j++) {
            if (P[i][j]>=5) continue;
            if (P[i][j]==0) continue;
            if (P[i][j]==-1) continue;
            PCnt++;
            Dijkstra(i,j,P[i][j]);
        }
    }
    cout<<endl<<PCnt; //Number of pots
}



--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
neutrino
Дата 2.10.2003, 08:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



Картинку посмотрел. Так что там пятна? Черное? Белое?

Возможно эту картинку придется немного поменять для этого алгоритма.


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
Mephisto
  Дата 2.10.2003, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


Профиль
Группа: Завсегдатай
Сообщений: 1818
Регистрация: 27.8.2003
Где: Питер

Репутация: нет
Всего: 34



Цитата
и что надо тут (http://grafitchem.narod.ru/Resize_of_Grafit.htm) найти? обведи в фотошопе

Обьяснения Here.

Цитата
Возможно эту картинку придется немного поменять для этого алгоритма.

Может есть какие-либо размышления по поводу упрощения картинки? Я пробовал понижать яркость, так проще её исследовать, но найти границу между двумя выпуклостями становится тяжелее confused.gif

Это сообщение отредактировал(а) U-Boot - 2.10.2003, 18:03
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0680 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.