AProg/2017/ex03ST
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*応用プログラミング及び実習 2017年度 第3回 おまけ課題 [#u...
#contents
**課題S(おまけ課題) 締切:次回実習&color(blue){終了};ま...
課題Dのプログラムに,画像を縮小する機能を追加しよう.
縮小機能は関数として実装すること.ただし,関数の仕様(関...
画像縮小のアルゴリズムについては,以下で解説する.
***step0 準備 [#l1fffff1]
幅 W 高さ H の画像を幅 w 高さ h の画像に縮小するとする.
縦横の縮小率は別個に定められるようにするべきであるが,こ...
作成するプログラムも縦横同一の縮小率としてよい.
縮小率を &mathjax{\alpha}; で表すことにする.すなわち,
#mathjax{{
\left\{ \begin{array}{l} w = \frac{W}{\alpha} \\ h = \fra...
}}
である(除算は小数点以下切り捨て).
&mathjax{\alpha = 2}; ならば画像サイズを縦横半分にするこ...
***step1 &mathjax{\alpha}; が自然数の場合その1 [#r65b359c]
&mathjax{\alpha}; が自然数の場合,もっとも単純な方法は,...
簡単のために1次元で考えると,元画像の画素値のならびが
#pre{{
座標 [0] [1] [2] [3] [4] [5] [6] ...
画素値 10 15 17 16 19 20 18 ...
}}
であり,&mathjax{\alpha = 3}; だったとすると,縮小後の画...
#pre{{
座標 [0] [1] [2] ...
画素値 10 16 18 ...
}}
とする,というものである.
#pre{{
for(x = 0; x < w; x++){
X = x * alpha;
img[x] = IMG[X];
}
}}
***step2 &mathjax{\alpha}; が自然数の場合その2 [#yd29b08a]
実は,step1のように単純にサンプリングする方法は,「エイリ...
以下のサンプル画像を縮小してみるとわかるかもしれない.
&mathjax{\alpha = 3}; で縮小してみよう.
-PGM画像 [[reductionsample1.pgm>AProg:reductionsample1.pg...
-PPM画像 [[reductionsample1.ppm>AProg:reductionsample1.pp...
縮小画像の質を改善する,いいかげんだけど最も簡便な方法は...
step1と同様に1次元で説明する.
元画像の画素値のならびが
#pre{{
座標 [0] [1] [2] [3] [4] [5] [6] ...
画素値 10 15 17 16 19 20 18 ...
}}
であり,&mathjax{\alpha = 3}; だったとすると,縮小後の画...
#pre{{
座標 [0] [1] ...
画素値 14 18
}}
とする,というものである.ただし,(10+15+17)/3 = 14, (16+...
**課題T(おまけ課題)締切:&color(blue){高橋担当の実習最...
● &mathjax{\alpha}; が正の実数の場合
&mathjax{\alpha}; として任意の正の実数をとれるようにした...
例えば,&mathjax{\alpha = 1.5}; として step1 の方法を適用...
しかし,元画像の座標は [0], [1], ... と整数値をとっている...
これを解決するには,何らかの方法で画素値を「補間」(「数...
というわけで,この方法について調べて,任意の縮小率を実現...
また,縮小ができたらちょっと手を加えるだけで拡大もできる...
任意の拡大率での拡大もできるようにしてみよう.
終了行:
*応用プログラミング及び実習 2017年度 第3回 おまけ課題 [#u...
#contents
**課題S(おまけ課題) 締切:次回実習&color(blue){終了};ま...
課題Dのプログラムに,画像を縮小する機能を追加しよう.
縮小機能は関数として実装すること.ただし,関数の仕様(関...
画像縮小のアルゴリズムについては,以下で解説する.
***step0 準備 [#l1fffff1]
幅 W 高さ H の画像を幅 w 高さ h の画像に縮小するとする.
縦横の縮小率は別個に定められるようにするべきであるが,こ...
作成するプログラムも縦横同一の縮小率としてよい.
縮小率を &mathjax{\alpha}; で表すことにする.すなわち,
#mathjax{{
\left\{ \begin{array}{l} w = \frac{W}{\alpha} \\ h = \fra...
}}
である(除算は小数点以下切り捨て).
&mathjax{\alpha = 2}; ならば画像サイズを縦横半分にするこ...
***step1 &mathjax{\alpha}; が自然数の場合その1 [#r65b359c]
&mathjax{\alpha}; が自然数の場合,もっとも単純な方法は,...
簡単のために1次元で考えると,元画像の画素値のならびが
#pre{{
座標 [0] [1] [2] [3] [4] [5] [6] ...
画素値 10 15 17 16 19 20 18 ...
}}
であり,&mathjax{\alpha = 3}; だったとすると,縮小後の画...
#pre{{
座標 [0] [1] [2] ...
画素値 10 16 18 ...
}}
とする,というものである.
#pre{{
for(x = 0; x < w; x++){
X = x * alpha;
img[x] = IMG[X];
}
}}
***step2 &mathjax{\alpha}; が自然数の場合その2 [#yd29b08a]
実は,step1のように単純にサンプリングする方法は,「エイリ...
以下のサンプル画像を縮小してみるとわかるかもしれない.
&mathjax{\alpha = 3}; で縮小してみよう.
-PGM画像 [[reductionsample1.pgm>AProg:reductionsample1.pg...
-PPM画像 [[reductionsample1.ppm>AProg:reductionsample1.pp...
縮小画像の質を改善する,いいかげんだけど最も簡便な方法は...
step1と同様に1次元で説明する.
元画像の画素値のならびが
#pre{{
座標 [0] [1] [2] [3] [4] [5] [6] ...
画素値 10 15 17 16 19 20 18 ...
}}
であり,&mathjax{\alpha = 3}; だったとすると,縮小後の画...
#pre{{
座標 [0] [1] ...
画素値 14 18
}}
とする,というものである.ただし,(10+15+17)/3 = 14, (16+...
**課題T(おまけ課題)締切:&color(blue){高橋担当の実習最...
● &mathjax{\alpha}; が正の実数の場合
&mathjax{\alpha}; として任意の正の実数をとれるようにした...
例えば,&mathjax{\alpha = 1.5}; として step1 の方法を適用...
しかし,元画像の座標は [0], [1], ... と整数値をとっている...
これを解決するには,何らかの方法で画素値を「補間」(「数...
というわけで,この方法について調べて,任意の縮小率を実現...
また,縮小ができたらちょっと手を加えるだけで拡大もできる...
任意の拡大率での拡大もできるようにしてみよう.
ページ名: