はてなブックマークに追加

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
はてなブックマークに追加

セピア変換

cvsepia.jpg

openCVを使ってカラー画像をセピア色に変換するサンプルソースです。
変換アルゴリズムとても単純で、まず入力画像をグレースケールに変換したのち、
変換画像の赤成分をアップ、青成分をダウンするだけです。

得られる写真の色合いはグレースケールにした時の彩度と
色調補正するときの赤青の増減値でほぼ決まります。

ピクセルにアクセスするためのマクロ定義はこちら。ピクセルアクセスのためのマクロ


int main(int argc, char** argv)
{
IplImage *img = cvLoadImage("fw.jpg");
IplImage *gray = cvCreateImage(cvGetSize(img), IPL_DEPTH_8U, 1);

const int darkness = 50;

// グレースケール化
cvCvtColor(img, gray, CV_BGR2GRAY);
for(int x = 0; x < gray->width; ++x){
for(int y = 0; y < gray->height; ++y){
int g = PIXVAL(gray, x, y) - darkness;
PIXVAL(gray, x, y) = (g > 0)?g:0;
}
}
cvCvtColor(gray, img, CV_GRAY2RGB);

// セピア色をつける
for(int x = 0; x < img->width; ++x){
for(int y = 0; y < img->height; ++y){
int r = PIXVALR(img, x, y)+30;
int b = PIXVALB(img, x, y)-30;
PIXVALR(img, x, y) = (r < 256)? r : 255;
PIXVALB(img, x, y) = (b > 0) ? b : 0;
}
}

// 表示
cvNamedWindow("window1", CV_WINDOW_AUTOSIZE);
cvShowImage("window1", img);

cvWaitKey(0);

cvReleaseImage(&img);
cvReleaseImage(&gray);
return 0;
}

スポンサーサイト

コメントの投稿

非公開コメント

開発アプリ

iDOF 色影 ラテアート ぱすてる

プロフィール

hokuson

Author:hokuson
京都在住。iPhoneアプリ「色影」や「iDOF」の開発者。アプリのレビューとかもしてみる。博士後期課程@R大学。ついに就職活動なるものをしなければいけないらしい。誰か雇ってください。笑。

カレンダー
08 | 2017/09 | 10
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
カテゴリ
最新コメント
RSSリンクの表示
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。