Головна сторінка
Top.Mail.Ru Яндекс.Метрика
Форум: "Media";
Поточний архів: 2002.12.23;
Завантажити: [xml.tar.bz2];

Вниз

Видалення чорного і сірого з малюнка. Знайти схожі гілки


Карелин Артем   (2002-09-06 10:55) [0]

Отже, є купа відеофайлів. У них обертається складна спиралевидная фігура, що складається з білих точок.
Оскільки це стислий відео, то білі точки на чорному тлі перетворюються в градієнт від білого до чорного. Потрібно швидко вилучати чорні і темно-сірі пікселі з TBitmap.
Що порадите?



MBo   (2002-09-06 12:24) [1]

1) найшвидше - Intel Image Processing Library
2) отримати адресу даних TBitmap, пробігти по цьому шматку пам'яті
Простіше - GetDIBits, SetDIBits
3) Scanline



Карелин Артем   (2002-09-06 12:43) [2]

Intel Image Processing Library:
developer.intel.com 22 мега, DLL-ки важкі



Владимир Васильев   (2002-09-06 13:59) [3]

Пікселі видалити не можна - можна замінити один колір (або діапазон кольорів) на інший.
Поясніть докладніше вашу проблему.



Карелин Артем   (2002-09-06 14:21) [4]

Загалом треба все пікселі темніше заданого замінити на один певний.



Владимир Васильев   (2002-09-06 14:42) [5]

Пропоную юзати G32:
Код не перевіряв, але має працювати


// TreshOld-величина зрізу по інтенсивності
procedure DoIt (Dst, Src: TBitmap32; TreshOld: integer; DestColor: TColor32);
було
I: Integer;
D, S: PColor32;
починати
CheckParams (Dst, Src);
Dst.SetSize (Src.Width, Src.Height);
D: = @ Dst.Bits [0];
S: = @ Src.Bits [0];
for I: = 0 to Src.Width * Src.Height - 1 do
починати
if Intensity (S ^) <TreshOld
then D ^: = DestColor
else D ^: = S ^;
Inc (S); Inc (D);
end;
Dst.Changed;
end;



msts   (2002-09-06 14:44) [6]

а розпізнати фігуру випадком теж треба?



Карелин Артем   (2002-09-06 14:47) [7]

Розпізнавати не треба.



Владимир Васильев   (2002-09-06 14:47) [8]

Помилка: ThreshOld - а то і в правильному написанні неблагозвучно.



samvel   (2002-09-06 22:27) [9]

якщо все пікселі Серово кольору, то значить у них R = G = B, можна
отримати колір піскелей (colortoRGB.pixels [i, j]), a потім отримати
значення або R або G або B (r: = getrvalue (colortoRGB.pixels [i, j]),
a потім замінити їх яким хочемо:
(Image1, canvas.pixels [i, j]: = RGB (r, g, b))



сторінки: 1 вся гілка

Форум: "Media";
Поточний архів: 2002.12.23;
Завантажити: [xml.tar.bz2];

наверх









Пам'ять: 0.58 MB
Час: 0.028 c
1-74712
123000
2002-12-13 20:13
2002.12.23
Як визначити кількість іконок в файлі ???


3-74562
дослідник
2002-12-04 13:29
2002.12.23
Перекрыть DBGrid


14-74894
камінь
2002-12-04 12:43
2002.12.23
Компоненти для роботи з модемом


14-74903
В'ячеслав
2002-12-01 12:15
2002.12.23
Як обдурити систему?


1-74808
в цьому
2002-12-11 00:42
2002.12.23
ресурси





африкаанс албанський арабська вірменин азербайджанець баскський білоруський болгарська каталонський Китайська (спрощене письмо) Китайський традиційний) хорватський чеська данську мову нідерландський Ukranian естонець Філіппінська фінську мову французький
галісійська грузинський німецький грецький гаїтянський креольський давньоєврейську хінді угорський ісландський індонезієць ірландський італійський японський корейський латиська литовець македонець малайський мальтійський норвежець
перс полірування португальська румунський російська сербський словацький словенський іспанська суахілі шведську мову тайський турецька український урду в'єтнамський валлійський ідиш бенгальський боснійський
кебуано есперанто гуджараті хауса хмонг ігбо яванський каннада кхмерская Лао латинь маорі маратхі монгольський непальська панджабі сомалійський тамільська телугу йоруба
зулуський
Англійська Французький Німецький Італійський Португальська Русский Іспанська