Дії з пікселями у відео Processing

У першому прикладі цієї глави ви дізналися, як завантажити відеофайл і відобразити кадри з нього на екрані за допомогою функції image () У цьому прикладі ми подивимося, як ми можемо змінити відображення відео на екрані, змінивши колір деяких пікселів

Як це робиться

Перша частина скетчу аналогічна попередньому прикладу Це імпорт бібліотеки video, оголошення обєкта Movie, завантаження відеофайлу і запуск безперервного програвання

import processingvideo*

Movie m

int numPixels

void setup()

{

size( 640, 480 )

numPixels = width * height

m = new Movie( this, &quotmarblesmov&quot ) mloop()

}

Реальні зміни в цьому прикладі знаходяться у функції draw () Ми виведемо кожен кадр на екран за допомогою функції image () Після цього ми змінимо колір тих пікселів, яскравість яких менше 245

void draw()

{

background( 0 )

image( m, 0, 0, width, height )

loadPixels()

for ( int i = 0 i &lt numPixels i++ ) { float b = brightness( pixels[i] )

if ( b &gt 245 ) {

pixels[i] = lerpColor( pixels[i], color(0, 0, 0), map(b, 0, 255, 0, 1))

}

}

updatePixels()

}

void movieEvent( Movie m )

{

mread()

}

Коли ви запустите скетч, ви побачите, що більшість пікселів чорні, так як наше відео не надто яскраве

Після виведення зображень на екран я використав функцію loadPixels () для завантаження всіх пікселів з екрану в масив пікселів Для проходу по всіх пикселям та перевірки яскравості я використовував цикл for Для тих пікселів, які найяскравіше 245, колір пікселя змішується з чорним Після заміни квітів викликається функція updatePixels () для перегляду на екрані нового зображення

Функція lerpColor () використовується для змішування двох кольорів Перші два параметри цієї функції використовуються для вказівки квітів, які ви хочете змішати, а третій параметр визначає, яким чином кольору змішуватимуться Цей параметр знаходиться в діапазоні від 0 до 1 Якщо ви запишете 01, результуючий колір буде ближче до першого кольором Якщо ви запишете 09, то він буде більше схожий на другий колір Для змішування кольорів в рівних пропорціях ви можете вказати в третьому параметрі 05

Якщо яскравість вашого відео менше, ніж цього, ви можете знизити кордон яскравості Це призведе до іншого результату Також для установки кордону яскравості ви можете використовувати значення hue () і saturation () кожного пікселя

Джерело: Ян Вантомм, Processing 2: креативне програмування, переклад з англійської Олександри Мішутіної, Published by Packt Publishing Ltd, 2012, BIRMINGHAM – MUMBAI

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*