![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
こんばんは!
Windows環境,VS2005で放射状ブラーを以下の様に書きましたが、
結果が添付ファイルの様になってしまい、うまくいきません。
コンパイルは通り実行もできるのですが、結果がうまくいっていないのです。(いろんな画像で試しましたが明らかに
うまくいっていない気がするのです)
参考にしたのは、
http://www.sbcr.jp/books/download/art.asp?newsid …
の
" 第3章 エフェクト処理の応用(その1) IPP_Chap3a.zipの中にある
list3_14.cです。
又、web上では、http://d.hatena.ne.jp/matsu4512/20090726/1248575 …
参考にしました。
以下が私が書いたものです。Input=24bppのrawファイル名
幅、高さが入った構造体です。
プログラミング思想としては、1次元配列で画像を表しています。
#define NN 17
#define NF 8
int Main24bppToRadialBlur(COMMONDATA *Common_Data_Raw)
{
FILE *fpt;
FILE *fpt_output;
int width=Common_Data_Raw->width;
int height=Common_Data_Raw->height;
int i;
unsigned char *layer,*img_output;
int rr,gg,bb,oo;
int x1=0;
int y1=0;
int x2=3*width-3;
int y2=3*width*height-3*width;
WCHAR DebugStr[256];
double ox,oy;
ox=(double)(x2-x1)/2.0;
oy=(double)(y2-y1)/2.0;
double dx,dy;
dx=(double)x2-ox;
dy=(double)y2-oy;
double disMAX;
disMAX=sqrt(dx*dx+dy*dy);
int x,y;
int xx,yy;
double rate,rad=0,dis,disI;
int pat_sum,pat;
double ef=30.0;
_wfopen_s(&fpt,Common_Data_Raw->filename,L"rb");
layer=(unsigned char*)malloc(3*width*height*sizeof(unsigned char));
//読み込み
fread(&layer[0],sizeof(unsigned char),3*width*height,fpt);
img_output=(unsigned char*)malloc(3*width*height*sizeof(unsigned char));
//◆画像処理をするスペース
for(y=y1;y<=3*width*height-3*width;y+=3*width)
{
for(x=x1;x<=3*width-3;x+=3)
{
rr=gg=bb=oo=0;
dx=(double)x-ox;
dy=(double)y-oy;
if(dx!=0.0)
{
rad=atan(dy/dx);
}
else
{
rad=3.14159265/2.0;
}
//rad+=(3.14159265/2.0);
dis=sqrt(dx*dx+dy*dy);
rate=ef*dis/disMAX;
rate/=((double)NF);
pat_sum=0;
for(i=0;i<NN;i++)
{
if(i==NF)
{
pat=3;
}
else
{
pat=1;
}
disI=(double)(i-NF)*rate;
xx=(int)(disI*cos(rad))+x;
yy=(int)(disI*sin(rad))+y;
rr+=layer[xx+yy] * pat;
gg+=layer[xx+yy+1]* pat;
bb+=layer[xx+yy+2]* pat;
oo+= pat;
pat_sum+=pat;
}
img_output[x+y]=rr/(oo);
img_output[x+y+1]=gg/(oo);
img_output[x+y+2]=bb/(oo);
}//x
}//y
_wfopen_s(&fpt_output,L"RGBToRadialBlur.raw",L"wb");
fwrite(&img_output[0],sizeof(unsigned char),3*width*height,fpt_output);
fclose(fpt);
fclose(fpt_output);
free(layer);
free(img_output);
![「放射状ブラー C言語で書いたのですが結果」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/7/852495_5497cd090fd3d/M.jpg)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 並列プログラミングのπ計算について 1 2022/07/16 22:30
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- その他(プログラミング・Web制作) Pythonでのかんたんな物理シミュレーションについての書籍 5 2023/06/02 07:37
- C言語・C++・C# Cのdoubleの浮動小数点表示について 3 2023/04/17 13:14
- その他(プログラミング・Web制作) Pythonにおける物理のシミュレーションでの単位変換について 2 2023/06/02 17:11
- その他(プログラミング・Web制作) Pythonによる物理の斜方投射の位置座標表示について 2 2023/06/05 12:46
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- その他(プログラミング・Web制作) ボールの動きがスムーズに動いてかつ目盛り線描画を維持するためには 4 2023/05/31 10:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
迷路を脱出する経路探索プログ...
-
C言語で%を使わない余りの出し方
-
クリックされた地点が2点の線分...
-
c++ TCHARで文字化け
-
迷路の解を見つけるアルゴリズム
-
C言語プログラミング 漸化式に...
-
【OpenGL ドラッグ&ドロップの...
-
画像の拡大・縮小
-
放射状ブラー C言語で書いたの...
-
カードシャッフルのブログラム...
-
bool
-
再起を使って迷路を解くプログ...
-
C言語
-
再起呼び出しの回数をカウント...
-
プログラムの実行時に'<'でリダ...
-
信頼区間の1.96や1.65ってどこ...
-
複数桁10進数の*桁目だけを抽出...
-
数学 確率変数Xは、X=2またはX...
-
Enterキーを押されたら次の処理...
-
反転した数値を表示させるやり方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報