라즈베리파이에서 Processing을 이용한 픽셀기반영상처리-2

메카 2017-04-03 (월) 12:42 2년전 1208  

[실습5-4] 산술연산 - 나눗셈

영상 1개를 불러와서 화소에 나눗셈 연산을 해보자. 영상의 명암 대비를 조절할 수 있다.

a) 소스코드 및 결과 영상

 PImage img;

void setup(){

img = loadImage("GrayScaleImage.jpg");

size(1280, 480);

}

void draw(){

PImage arith_img_add_1 = createImage( img.width, img.height, RGB );

float val1=1.2;

 

img.loadPixels();

for ( int y = 0; y < img.height; y++){

for ( int x = 0; x < img.width; x++){

int pos = x + y*img.width;

color c = img.pixels[pos];

float r1 = red( c )/val1;

float g1 = green( c )/val1;

float b1 = blue( c )/val1;

if(r1<0) r1=0;

else if(r1>255) r1=255;

if(g1<0) g1=0;

else if(g1>255) g1=255;

if(b1<0) b1=0;

else if(b1>255) b1=255;

arith_img_add_1.pixels[pos] = color(r1,g1,b1);

}

}

arith_img_add_1.updatePixels();

image(img, 0, 0);

image(arith_img_add_1, 640, 0);

}

 

 

02c7232450ce0f92271d32085c8e4707_1491190
 

 

[그림 5-4] 실습5-4 소스 코드 및 결과 영상- 좌상: 원 영상, 우상: 나눗셈 1.2, 좌하: 나눗셈 1.5, 우하: 나눗셈 2.0

 

b) 코드 설명

입력 영상은 그레이스케일 영상으로 하였다. 입력된 영상에 대하여 val1에 나눗 값을 1.2으로 하였으며, 결과 영상은 위 그림에서 오른쪽 위에 위치한다. val1에 각각 다른 값을 입력하여 결과를 확인할 수 있다. 위 그림에서 1.5을 적용한 경우가 외쪽 아래 이며, 2.0을 적용한 경우가 오른쪽 아래이다. 값이 커질수록 어두운 쪽으로의 명암 대비가 뚜렷하게 나타난다는 것을 알 수 있다

메카리워즈 Image Map


모바일 버전으로 보기