|
0 / 0 / 0
Регистрация: 28.10.2021
Сообщений: 40
|
||||||
Замена цвета пикселя с условием равенства/неравенства другому цвету10.01.2022, 16:19. Показов 6246. Ответов 60
У меня есть изображение, просканированное с помощью scanline. Полученный результат выведен на многострочное поле. Следующим действием, которое выполняется новой кнопкой, нужно этот массив (76800 пикселей) проверить на условие: если элемент массива меньше одного цвета и больше второго, то этот элемент снова отображается на поле, но если данное условие не выполняется, то элемент заменяется другим цветом
Когда начала прописывать это условие, то каждый раз возникала одна и та же ошибка – Incompatible types. Пробовала по-другому записывать код цвета, но изменений не было Не бросайте тапками, я только учусь и еще не все понимаю Прикрепляю коды кнопок со сканированием и того, что я пыталась сделать + глобальные переменные (x_max, y_max - размеры сканируемого изображения)
0
|
||||||
| 10.01.2022, 16:19 | |
|
Ответы с готовыми решениями:
60
C++ Поиск пикселя заданного цвета и замена другим. Поиск координат по цвету пикселя Определение цвету по значениям пикселя |
|
57 / 52 / 5
Регистрация: 18.11.2018
Сообщений: 295
|
|
| 11.01.2022, 21:49 | |
|
А вот прямо обвести можете?
\один или несколько таких участков. Для ясности понимания ![]() Ну или стрелочкой показать...
0
|
|
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,495
|
|||
| 11.01.2022, 21:55 | |||
|
FoxyFall, если возможно, ещё прикрепи изображение, подобное которому хочется получить.
0
|
|||
|
240 / 218 / 46
Регистрация: 17.04.2010
Сообщений: 526
|
|
| 11.01.2022, 22:06 | |
|
Я правильно понимаю, что темные участки нужно сделать еще темнее и выделить границу таких участков?
0
|
|
|
0 / 0 / 0
Регистрация: 28.10.2021
Сообщений: 40
|
|
| 11.01.2022, 22:52 [ТС] | |
|
Как-то так. Не очень удачный снимок, поэтому трудно выделить нужное
Затемнение нужно оставить такими, как они есть. Пространство, в котором находятся эти затмения, то есть светло-желтое поле и все баги линзы микроскопа, заменить другим цветом Контрастный цвет здесь берется за цветовым кругом. В данном случае к желтому идет фиолетовый, но это не самое приятное сочетание для меня, поэтому использую оттенок голубого (как в первом сообщении) или зеленого (новый вариант) К сожалению, подобного изображения на выходе нет. Разве нарисую что-нибудь похожее в иллюстраторе
0
|
|
|
240 / 218 / 46
Регистрация: 17.04.2010
Сообщений: 526
|
||
| 12.01.2022, 10:52 | ||
|
0
|
||
|
|
|
| 12.01.2022, 11:44 | |
|
тут скорее всего уже нужна хорошая такая математика, потому что сравнивать надо не пиксели, а некие "зоны", а их надо еще хорошо определить
скорее всего решение будет где-то в районе фамилий Гаусс и Фурье тут вроде был кто-то с профильным образованием, но надо искать в разделе Алгоритмы.
0
|
|
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,495
|
||
| 12.01.2022, 12:13 | ||
|
Вообще, думаю, тут цветовое пространство RGB не подходит для данной задачи. Думаю, лучше будет перевести в HSV, и тогда можно ориентироваться на одну компоненту H, которая обозначает цвет и так и выделять нужные цвета.
0
|
||
|
0 / 0 / 0
Регистрация: 28.10.2021
Сообщений: 40
|
|
| 12.01.2022, 13:40 [ТС] | |
|
Предположим, это увеличенная область фото после обработки. Желтые "пиксели" - агломераты (темные пятна перед обработкой). Зеленые "пиксели" - среда с замененным цветом
На memo оно как-то так должно быть: байо – замененный пиксель, а RRGGBB – попал в диапазон и не заменялся
0
|
|
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,495
|
||
| 12.01.2022, 14:14 | ||
|
Значит получается, вам нужно брать среднюю яркость области вокруг рассматриваемого пикселя и как-то сравнивать с пикселем, чтобы узнать, насколько пиксель тёмный или светлый. И уже потом более светлые можно заменить на какой-то определённый цвет. Пока такое предложение. Кодить не спешу, пока не пойму, как именно нужно обработать картинку.
0
|
||
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,495
|
|
| 12.01.2022, 14:15 | |
|
Или не среднюю яркость, а определять мин/макс диапазон яркости в некоторой области и относительно него уже смотреть яркость конкретного пикселя.
0
|
|
|
0 / 0 / 0
Регистрация: 28.10.2021
Сообщений: 40
|
|
| 12.01.2022, 15:02 [ТС] | |
|
AzAtom, для сравнения темный/не темный использую такую шкалу. Но это все еще приблизительная область нужных цветов
0
|
|
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,495
|
|
| 12.01.2022, 15:29 | |
|
FoxyFall, если оперировать понятиями тёмный/светлый, то можно найти яркость пикселя Y по какой-либо популярной формуле, например, Y = 0,299*R + 0,587*G + 0.114*B, и уже смотреть только яркость. Либо просто усреднить значения трёх компонент RGB и это рассматривать, как яркость. Значения будут от 0 до 255.
Есть смысл попробовать эти варианты. Добавлено через 7 минут Если сравнивать 32 битные значения, как изначально, то по сути сравнение идёт только по красному каналу, а остальные не влияют.
0
|
|
|
0 / 0 / 0
Регистрация: 28.10.2021
Сообщений: 40
|
|
| 13.01.2022, 16:26 [ТС] | |
|
snake32, мою программу можно как-то адаптировать к такому?
0
|
|
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,495
|
|
| 13.01.2022, 16:42 | |
|
Я, наверное, длинно пишу. То же самое я уже предлагал вчера Замена цвета пикселя с условием равенства/неравенства другому цвету
0
|
|
|
0 / 0 / 0
Регистрация: 28.10.2021
Сообщений: 40
|
|
| 13.01.2022, 17:04 [ТС] | |
|
AzAtom, нет, не длинно. Просто вчера я еще как-то пыталась найти решение, чтобы сохранить свою модель, а сегодня устала подбирать диапазон и открыта для других идей
![]() Плюс, HSL и HSV немного отличаются между собой. Если с первой я знакома, потому что использовала эти шкалы для поиска диапазона, то вторая – неизведанная земля для меня
0
|
|
|
240 / 218 / 46
Регистрация: 17.04.2010
Сообщений: 526
|
|
| 13.01.2022, 17:37 | |
|
FoxyFall, ты проигнорировала просьбу предоставить больше деталей, что конкретно тебе нужно реализовать.
Предоставленный образец изображения подсказывает, что задача определённо сложнее описанных сравнений цвета. Очень похоже на попытку получить подсказку для изначально неверного подхода. AzAtom показал очень хороший и наглядный пример изображения, где два абсолютно одинаковых цвета в реальности сильно разные и простым сравнением об этом не узнать. Какие реально действия нужно автоматизировать работая с этими снимками? Нужно автоматически что-то разметить или помочь/упростить работу пользователя? Цвет несёт какую-либо важную информацию или важны только детали изображения? Характеристики объектов на снимке возможно описать формально или решение принимается пользователем? Ну и т.д. и т.п.
0
|
|
|
0 / 0 / 0
Регистрация: 28.10.2021
Сообщений: 40
|
|
| 13.01.2022, 17:53 [ТС] | |
|
x128, просто больше информации действительно нет
Передо мной была поставлена задача: изготовить образцы с новой рецептурой, исследовать их и подправить рецептуру Исследование нужно провести в делфи. И все, что у меня есть, это идея руководителя: просканировать каждый пиксель, сравнить с диапазоном, заменить недиапазонные пиксели. А дальше веселее. Если удастся найти агломераты, портящие мою работу, то их тут же прорисовать с помощью геометрических фигур, допустим треугольников, и измерить размер Все это время я пыталась придерживаться идеи руководители, поэтому так упорствовала и пыталась как-то реанимировать эту идею
0
|
|
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,495
|
||
| 13.01.2022, 18:39 | ||
|
Но я больше склоняюсь, чтобы найти просто яркость и уже её изучать. Судя по картинке сам цвет тут не важен.
0
|
||
|
0 / 0 / 0
Регистрация: 28.10.2021
Сообщений: 40
|
|
| 13.01.2022, 18:59 [ТС] | |
|
AzAtom, но от микроскопа есть затемненная зона и определенные недостатки линзы, они не будут сильно влиять на результаты?
0
|
|
| 13.01.2022, 18:59 | |
|
Поиск пикселя по цвету в Bitmap Ищем координару пикселя по цвету и сохраняем в таблицу. НЕ ПОНИМАЮ. Поиск координаты пикселя на изображении по его цвету Перегрузка операций равенства, неравенства прямоугольников, найти площадь и периметр Join c условием одновременного равенства Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|