画像情報処理演習 「線形変換」のプログラム作成
 先週の宿題、「Linear補正プログラムの作成」を今の今まで行っていた。K氏にアドバイスをいただいたりした結果(電話してきてくれてありがとう!!!!)、ついに完成!!!!(正解かどうかはわからないが)

 以下にプログラムを示す。

 しかし、本当に苦労した。UNIXのサーバに入れなかったり、入れてもなぜかコンパイルできなかったりと、トラブルの連続。結局Windows上のC++コンパイラを使って行うことにしたものの、ヘッダファイルがない!!!ネット上で見つけ、なんとかプログラムをするところまでこじつけるのにかなりの労力を要した。

 そこからが本当に苦労した。アドバイスをもらいつつ、ひとつずつ問題解決していき、最後は完成に気づかず勘違い。(a=-1,b=0で真っ黒になるので「おかしい」と思ったら、b=255を入れる必要があったのだ!)

 ひさしぶりに、「やったーーーーーー!!!!!!」と心の底から喜べました!!!!!!
 先週は、本当につらかった・・・・・・



#include
#include
#include
#include"mypgm.h"

void linear_comp(double a,double b)
/* 画像のLinear補正を行う.   */
/* 原画像 image1[y][x] ===> 変換後の画像 image2[y][x] */
{
int x, y; /* 制御変数 */


for (y=0;y<256;y++){
for (x=0;x<256;x++){
double d,e;
d=(double)image1[y][x];
e=a*d+b;

if(e<0) e=0;
if(e>255) e=255;
image2[y][x]=e+0.5;
}
}
x_size2=x_size1;
y_size2=y_size1;
}
main( )
{
double a,b,r;

load_image_data( ); /* 画像を読み込んで image1 へ */

printf ("y=ax+b:a= ");
scanf ("%lf", &a);
printf ("y=ax+b:b= ");
scanf ("%lf", &b);
linear_comp(a,b); /* Linear補正して image2 へ */



save_image_data( ); /* image2 を保存する */
return 0;
}

a0014712_371134.jpg

上が元画像、下が反転画像。
a0014712_372567.jpg

[PR]
by viewtleaf | 2004-11-04 03:07 | 画像処理
<< 画像情報処理研究  色々考えた >>



毎日起こった出来事を記入し、「振り返り」に活用したいと思います。写真は我が子の作品。
by viewtleaf
S M T W T F S
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