Модератор: Mikle
R G B
Clr(i) = 31 50 44
Clr(i+1) = 36 53 47
RawPalette(16777215) As Bit
For i = 0 To UBound(ColorCode)
RawPalette(ColorCode(i)) = 1
Next i
ReDim Allc(524287)
c = 0
For i = 0 To UBound(CBuf())
c = Fix(CBuf(i) / 32)
k = CBuf(i) - (c * 32)
Allc(c + 1) = Allc(c + 1) Or 2 ^ (k - 1)
Next i
Don Leno писал(а):Конечная цель: собрав все цвета изображения сгруппировать по оттенкам, к примеру синий и все его оттенки и тп. Мне необходимо обрабатывать цвета в некоторых изображениях. К примеру у меня есть рисунок и нужно заменить в нем все оттенки красного на желтые.
Don Leno писал(а):
- Код: Выделить всё
ReDim Allc(524287)
c = 0
For i = 0 To UBound(CBuf())
c = Fix(CBuf(i) / 32)
k = CBuf(i) - (c * 32)
Allc(c + 1) = Allc(c + 1) Or 2 ^ (k - 1)
Next i
Mikle писал(а):Можно определить так
FireFenix писал(а):задача решается переводом RGB в HSV и отсечение по границам Hue
Allc(c + 1) = Allc(c + 1) Or 2 ^ (k - 1)
Allc(c + 1) = Allc(c + 1) Or (2 ^ k) - 1
c = CBuf(i) \ 32
k = CBuf(i) mod 32
Dim pow2(31) As Long
Dim i As Long
For i = 0 To UBound(pow2) - 1
pow2(i) = 2 ^ i
Next i
' установка 31-го бита
pow2(i) = pow2(i) Or &H80000000
Don Leno писал(а): мне необходимы группы оттенков видимого спектра.
Don Leno писал(а):Представь себе яблоко с зеленым листочком. Яблоко это красно-желтое местами оранжевое. Так вот программа должна создать четыре группы - красный, желтый, оранжевый и зеленый. В итоге я могу сохранить эти группы в файл/массив (так как мне нужно). И потом оперировать с ними.
К примеру, возьмем другой рисунок и сохраним из него группу оттенков синего. Потом заменим красную группу на синию из файла, а оранжевую заменим зеленым, желтый оставим неизменным. Листочек зеленого заменим на красный и в итоге получим - сине-желтое яблоко с зелеными переходами и красный листочек на нем.
FireFenix писал(а):можно определить цветовую палитру и на основе её корректировать результирующее фото, но будет очень много погрешностей.
For i = 0 To UBound(pow2) - 1
pow2(i) = 2 ^ i
Next i
Don Leno писал(а):Подскажте пжлста, как бы мне к моему PictureBox сделать просмотр всех цветов, а не только тех что помещаются на экране? Прошу только в теории)))
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16