Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 21.03.2016
Сообщений: 14

Расчет дисперсии фрагмента изображения

24.04.2016, 12:05. Показов 2804. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Хочется обратиться к вам за подсказкой. Мне нужно осуществить сегментацию изображения для отделения основной части рисунка от фона. Для этого нужно у каждого сегмента найти дисперсию и сравнить ее с пороговым значением. Сначала хотела просто попробовать найти дисперсию заданного сегмента с координатами (х1,у1)-верхний левый угол, (х2,у2)-правый нижний, но опять столкнулась со своим незнанием. Есть формула для расчета дисперсии, но как определить в ней просто численное значение цвета пикселя I(i,j) для дальнейшего расчета в формуле? какая функция это делает?
т.к. новенькая в с++, если можно, хоть частичку кода
прикрепила картинкой формулу дисперсии
Миниатюры
Расчет дисперсии фрагмента изображения  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.04.2016, 12:05
Ответы с готовыми решениями:

Искажения фрагмента изображения при копировании или записи
Добрый день, Знатоки! Помогите пожалуйста с проблемой! Пытаюсь вырезать заданный фрагмент из хорошего файла изображения и записать в...

Расчёт дисперсии
Как в данном случае вычислить дисперсию? (файл main.c со строки 420) Исходный коды:...

Расчёт дисперсии
Привет! У меня возникла странная проблема - при считывании столбца данных из текстового файла (данных около 20 000) и расчёта дисперсии...

10
0 / 0 / 0
Регистрация: 21.03.2016
Сообщений: 14
24.04.2016, 12:20  [ТС]
P.S: изображение черно-белое

Добавлено через 1 минуту
W*W - размеры сегмента
0
place status here
 Аватар для gunslinger
3185 / 2219 / 640
Регистрация: 20.07.2013
Сообщений: 5,999
25.04.2016, 18:04
Краткое руководство по работе с классом TCanvas для начинающих (конец поста №3)
Миниатюры
Расчет дисперсии фрагмента изображения  
0
place status here
 Аватар для gunslinger
3185 / 2219 / 640
Регистрация: 20.07.2013
Сообщений: 5,999
26.04.2016, 07:15
https://ru.wikipedia.org/wiki/... 0%B3%D0%BE (оттенки серого)

Пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
  const W = 50;
  unsigned long color, M, V;
  Byte R, G, B, F;
 
  Image2->Canvas->FillRect(Image2->Canvas->ClipRect);
 
  for (int I = 0; I < Image1->Width / W; I++)
    for (int J = 0; J < Image1->Height / W; J++)
    {
      M = 0;
      for (int i = 0; i < W; i++)
        for (int j = 0; j < W; j++)
        {
          color = Image1->Canvas->Pixels[i+I*W][j+J*W];
          R = GetRValue(color);
          G = GetGValue(color);
          B = GetBValue(color);
          M += 0.299*R + 0.587*G + 0.114*B;
        }
      M /= W*W;
 
      V = 0;
      for (int i = 0; i < W; i++)
        for (int j = 0; j < W; j++)
        {
          color = Image1->Canvas->Pixels[i+I*W][j+J*W];
          R = GetRValue(color);
          G = GetGValue(color);
          B = GetBValue(color);
          // замечание: R = G = B для черно-белого изображения и
          // хватит одной составляющей вместо среднего значения F
          F = (R + G + B) / 3;
          V += (F - M) * (F - M);
        }
      V /= W*W;
 
      Image2->Canvas->TextOutW(I*W, J*W, V);
    }
Миниатюры
Расчет дисперсии фрагмента изображения  
1
Модератор
 Аватар для vxg
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
26.04.2016, 14:08
Любопытства ради - почему когда считаем сумму для участка используем "яркость" а когда считаем отклонение от среднего простую среднюю по компонентам цвета?
0
place status here
 Аватар для gunslinger
3185 / 2219 / 640
Регистрация: 20.07.2013
Сообщений: 5,999
26.04.2016, 14:25
Почему среднее значение оттенка серого M(k) и яркость - см. ссылку выше. Это, насколько я понял, одно и то же.
Для отклонения от среднего используется цвет пикселя. Для черно-белого изображения значения компонент (R, G, B) одинаковые. Поэтому берем любую из них или среднее. В общем виде (для цветной картинки) такой способ может быть ошибочен. Для нашего же случая это считаю вполне допустимым.
Замечание: M(k) принимает значения от 0 до 255 включительно.
Значение цвета имеет тип unsigned long, поэтому используется значение компонент (диапазон как у M(k), 0-255).
Тут уже в ход пошла простая логика. Надеюсь, что она меня не подвела.
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
26.04.2016, 15:45
Цитата Сообщение от gunslinger Посмотреть сообщение
В общем виде (для цветной картинки) такой способ может быть ошибочен.
Конечно, допустим что вся картинка зеленая (R=0, G=255, B=0), что получится?
0
place status here
 Аватар для gunslinger
3185 / 2219 / 640
Регистрация: 20.07.2013
Сообщений: 5,999
27.04.2016, 02:32
Да это понятно. Тогда нужны уточнения, в каком виде цвет брать в зависимости от постановки задачи.
Для данной задачи уточнение тоже не помешало бы, если честно. Гадать можно долго, попадая пальцем в небо.
Логика логикой, а нюансы каждый по своему может понимать, когда четко не прописано.
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
27.04.2016, 05:18
Просто, в обоих циклах цвет нужно брать одинаково или 0.299*R + 0.587*G + 0.114*B или (R + G + B) / 3
0
Модератор
 Аватар для vxg
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
27.04.2016, 09:35
Цитата Сообщение от gumi250 Посмотреть сообщение
Просто, в обоих циклах цвет нужно брать одинаково или 0.299*R + 0.587*G + 0.114*B или (R + G + B) / 3
во во и я об этом спросил но ответ не понял поэтому сижу думаю что же со мной не так
0
place status here
 Аватар для gunslinger
3185 / 2219 / 640
Регистрация: 20.07.2013
Сообщений: 5,999
27.04.2016, 14:52
gumi250, возможно, прав, но тогда первая формула должна быть.
А почему возможно - для меня, допустим, "значение цвета" и "оттенок серого (яркость)" вовсе не равнозначные понятия (даже для черно-белого изображения).
Лучше пусть ТС все разъяснит, если в курсе.
Пикачу goodnastya, я вызываю тебя.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.04.2016, 14:52
Помогаю со студенческими работами здесь

Расчет времени выполнения команд фрагмента кода (MCS51)
Доброго времени суток, уважаемые коллеги! У начинающего программиста возникла банальная проблема с подсчетом времени выполнения кусочка...

Поиск фрагмента изображения.
Доброго дня! Подскажите, как найти часть картинки на изображении? т.е. имеется фрагмент изображения, его надо найти на общей картинке....

выделение фрагмента изображения
несколько чайниковый вопрос: кто может подкинет фрагмент кода (примерчик) - выделение фрагмента изображения (с компонентой TImage), с...

Копирование фрагмента изображения
Здравствуйте. Нужно скопировать выделенный фрагмент изображения из QPixmap в другое место формы. То есть перенести кусок изображение в...

Обработка фрагмента изображения
Как в данном квадратном изображении выделить фрагмент (центр которого совпадает с центром изображения) и обработать его отдельно от...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru