2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

画像をAAに変換させるプログラムを自作を切望

1 :名無しさん@├\├\廾□`/:2010/07/31(土) 14:49:00 ID:f6lcKj8+
あんま知識ないけど、画像を結構細かいピクセルでAAに
C言語で変換したいんだ。

とりあえず入門で(?)画像をモザイクにするプログラムは
できたんだけど・・これ応用して作れるもんなの??

/* カラー画像をモザイク化するプログラムcmosaic.c
コンパイルの仕方:gcc -o cmosaic cmosaic.c */
#include <stdio.h>
#include <stdlib.h>
#include "ppmpgm.h"
void make_cmosaic_image()
{
int i,j,x,y,k; /* 制御変数 */
int bsz; /* ブロックサイズ */
int bx,by; /* 横方向と縦方向ブロック数 */
int bvalR,bvalG,bvalB; /* ブロックの平均値 */
int pels; /* ブロック内ピクセル数 */
int X,Y; /* ピクセルの位置 */
printf("カラー画像のモザイク化\n");
pXdim2 = pXdim1; /* 横画素数 */
pYdim2 = pYdim1; /* 縦画素数 */
printf("ブロックサイズを入力してください(1より大きい値):");
scanf("%d",&bsz);
printf("ブロックサイズは%dである。",bsz);
if(pXdim1 % bsz == 0) /* 横方向ブロック数 */
bx = pXdim1 / bsz;   /* % 演算子と / 演算子は何にか違うか? */
else
bx = pXdim1 / bsz + 1;
if(pYdim1 % bsz == 0) /* 縦方向ブロック数 */
by = pYdim1 / bsz;
else
by = pYdim1 / bsz + 1;
for(j=0; j<by; j++)
for(i=0; i<bx; i++){ /* ブロックごとに計算する*/
bvalR = bvalG = bvalB = 0;
pels = 0;
for(y=0; y<bsz; y++)
for(x=0;x<bsz; x++){


2 :名無しさん@├\├\廾□`/:2010/07/31(土) 14:50:20 ID:f6lcKj8+
つづき↓


/* 現在のピクセルの位置を計算する */
X = i*bsz + x;
Y = j*bsz + y;

/* この位置が有効であれば、和を計算する */
if(X>=0 && X<pXdim1 && Y>=0 && Y<pYdim1){
/* 有効なので、ブロック内のピクセル数をカウントする */
pels++;

/* 和を計算する */
bvalR += pimage1[0][Y][X];
bvalG += pimage1[1][Y][X];
bvalB += pimage1[2][Y][X];
}
}

/* ブロック内ピクセルの平均値を計算する */
bvalR /= pels;
bvalG /= pels;
bvalB /= pels;

/* 計算した平均値を目的画像へ代入する */
for(y=0; y<bsz; y++)
for(x=0; x<bsz; x++){
X = i*bsz + x;
Y = j*bsz + y;
if(X>=0 && X<pXdim1 && Y>=0 && Y<pYdim1){
pimage2[0][Y][X] = bvalR;
pimage2[1][Y][X] = bvalG;
pimage2[2][Y][X] = bvalB;
}
}
}
}

main()
{
load_image_ppm(); /* 画像データをpimage1に読み込み */
make_cmosaic_image(); /* pimage1 画像を pimage2 へ */
save_image_ppm(); /* pimage2 を保存する */
return 0;
}


3 :名無しさん@├\├\廾□`/:2010/08/01(日) 17:04:54 ID:QEDgSptJ
つ 輪郭抽出、細線化

4 :名無しさん@├\├\廾□`/:2010/08/01(日) 23:05:17 ID:Qeq+gr01
>>3
kwsk

4 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)