2015年度期末試験解答

情報メディア学科2年後期
画像情報処理期末試験問題
注意事項:紙媒体の資料であれば何でも持込み可
解答用紙のみ提出し、問題用紙は持ち帰ること
(1) 3 チャンネルのカラー画像で各色の取りうる値が0~255である場合、1画素あたり
データのサイズは何ビットになるか。
選択肢
①
8ビット
②
16ビット ③
24ビット ④
32ビット
256 階調は 8 ビット
で表せるので 8×3 の
24 ビット
(2) 幅720ピクセル、高さ480ピクセルのカラー画像(RGBの3チャンネルで各色の
取りうる値は0~255)のデータサイズは何バイトになるか。
選択肢
①
7,372,800 バイト
②
1,228,800 バイト
③
1,036,800 バイト
④
921,600 バイト
⑤
345,600 バイト
⑥
307,200 バイト
720×480×3
=1036800
次の画像形式についての説明として正しいものをすべて選択せよ。
(3)BMP
①,⑥
選択肢
劣 化 す る の は ①
JPEG のみ、それ ②
以外は劣化しない
(4)JPEG
④,⑦
(5)GIF
②,③
(6)PNG
③,⑥
非 圧 縮 は
BMP のみ
Windows の標準フォーマットであり、基本的には非圧縮の画像形式である
GIF の特徴
可逆圧縮を行って
い る の は GIF と
③ Web 向けのフォーマットであり、可逆圧縮を行っている
PNG で BMP は
④ 圧縮率を上げるとエッジがボケ、ブロックノイズが発生する
Web 向きではない
⑤ 濃淡画像や二値画像を扱うための形式でカラー画像を扱うことができない
該当なし
⑥
⑦
利用できる色数が最大でも256色と少ない
画質の劣化なしにフルカラーの画像を扱うことができる
JPEG は 劣 化 し 、
画質が劣化するがファイルサイズが小さくなり写真などに向いている GIF はフルカラーを
扱えないので BMP
劣化するのは JPEG のみ。GIF も広い意
と PNG が該当
味では劣化するが、写真には向かない
(7) 座標(i,j)の画素値を 1 次元配列 data[j*WIDTH+i]に格納するようなデータ構造では、幅
720 ピクセル高さ 480 ピクセルの画像の座標(25,5)の画素値は配列のどの場所に格納される
か(一番左上の画素を原点(0,0)とする)
。
選択肢
① data[30]
② data[125]
③ data[3225]
④ data[3625]
⑤ data[6415]
⑥ data[7225]
⑦ data[18005] ⑧ data[19650]
720×5+25
=3635
(8) 次ページのような二値画像があったとする。1 画素の画素値を 1 ビットで表すデータ構
造では 1 行目はどのように記述されるか。なお、上位ビットが左の画素で下位ビットが右の
画素を表すものとする。
1
選択肢
①
0x31
②
0x32
③
0x3F
④
0x78
⑤
0x7C
⑥
0xEC
0111 → 0x7
(9)
2 値画像
1100 → 0xC 01111100 → 0x7C
HSV色空間は「色相」、「明度」、「彩度」で色を表す。
HとSとVの意味を正しく表しているものを選択せよ。
選択肢
①
Hが「色相」
、Sが「明度」
、Vが「彩度」を表す
②
Hが「明度」
、Sが「色相」
、Vが「彩度」を表す
③
Hが「彩度」
、Sが「明度」
、Vが「色相」を表す
④
Hが「色相」
、Sが「彩度」
、Vが「明度」を表す
⑤
Hが「明度」
、Sが「彩度」
、Vが「色相」を表す
⑥
Hが「彩度」
、Sが「色相」
、Vが「明度」を表す
画像データが右のような構造で格納されているとする。
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
typedef struct color {
この時に以下のC言語で書かれたコードが何を行ってい
unsigned char r;
るか選択肢より選択せよ。なお以下のコードでは、変数の
unsigned char g;
定義等で類推可能なものに関しては特に宣言を記述して
unsigned char b;
いない。また、エラー処理のような細かな処理の一部も省
} COLOR;
略している。
COLOR data[WIDTH][HEIGHT];
(10)
for (i = 0; i < WIDTH; i++) {
for (j = 0; j < HEIGHT; j++) {
outdata[i][j].r = 255 - data[i][j].r;
outdata[i][j].g = 255 - data[i][j].g;
outdata[i][j].b = 255 - data[i][j].b;
255 から色値を引くということは、0
ならば 255 になり、255 ならば 0 に
なる。つまり、色値が反転する
}
}
選択肢
①
カラー画像から赤色成分だけを抜き出している
②
色値を反転している(白ならば黒、黒ならば白となるような処理)
③
色相を 180°回転させている
④
彩度を上げている
⑤
明度を下げている
2
(11)
for (i = 0; i < WIDTH; i++) {
for (j = 0; j < HEIGHT; j++) {
tmp = data[i][j].r*0.299 + data[i][j].g*0.587 + data[i][j].b*0.114;
outdata[i][j].r = tmp;
RGB に一定の係数(合計が 1)をかけ
て足している。この係数は YIQ 表色系
の Y の係数
outdata[i][j].g = tmp;
outdata[i][j].b = tmp;
}
}
選択肢
①
カラー画像を二値化している
②
カラー画像から濃淡画像を作成している
③
ラプラシアンフィルタによってエッジを抽出している
④
メディアンフィルタによってノイズを除去している
⑤
RGBからHSVに色を変換している
(12)
for (i = 0; i < WIDTH; i++) {
for (j = 0; j < HEIGHT; j++) {
tmp = data[i][j].r * 1.5 - 127;
if (tmp < 0) tmp = 0;
else if (tmp > 255) tmp = 255;
outdata[i][j].r = (int)tmp;
tmp = data[i][j].g * 1.5 - 127;
if (tmp < 0) tmp = 0;
色値に 1 より大きな値をかけるとコン
トラストの強調になる。ただし、全体
的な明るさを調整するために適当な定
数を引く必要がある。-127 には特に意
味はない。もう少し小さな値を引くの
が一般的で、本来 127 は大き過ぎ。
else if (tmp > 255) tmp = 255;
outdata[i][j].g = tmp;
tmp = data[i][j].b * 1.5 - 127;
if (tmp < 0) tmp = 0;
else if (tmp > 255) tmp = 255;
outdata[i][j].b = (int)tmp;
}
}
選択肢
①
カラー画像を二値化している
②
細線化処理を行っている
③
二値画像に対して膨張・収縮処理を行っている
④
コントラストを強調している
⑤
ソーベルフィルタによってエッジを抽出している
3
(13)
unsigned char bw[WIDTH][HEIGHT];
array はラベルを格納するための配列
int array[WIDTH][HEIGHT] = { 0 };
int num = 0;
void f(int x, int y, int n) {
array[x][y] = n;
関数が自分自身を呼び出すのが再帰である。
再帰を使ったアルゴリズムには高速なもの
が多いので、ぜひ覚えておきたい。
if (bw[x-1][y] == 0 && array[x-1][y] == 0) f(x-1, y, n);
if (bw[x+1][y] == 0 && array[x+1][y] == 0) f(x+1, y, n);
if (bw[x][y-1] == 0 && array[x][y-1] == 0) f(x, y-1, n);
if (bw[x][y+1] == 0 && array[x][y+1] == 0) f(x, y+1, n);
}
int main() {
途中省略
tmp で濃淡値を求め、閾値
(THRESHOLD)
で 2 値化し bw 配列に記録している
for (j = 0; j < HEIGHT; j++) {
for (i = 0; i < WIDTH; i++) {
tmp = (data[i][j].r+data[i][j].g+data[i][j].b)/3;
if (tmp > THRESHOLD) bw[i][j] = 255;
else bw[i][j] = 0;
}
}
for (j = 0; j < HEIGHT; j++) {
for (i = 0; i < WIDTH; i++) {
if (bw[i][j] == 0 && array[i][j] == 0) {
num++;
f(i, j, num);
}
}
}
選択肢
①
Hilditch の細線化アルゴリズムを使って二値化した画像を細線化している
②
二値化した画像に対して再帰を使ってラベリングしている
③
いくつかの領域に分割後、各領域を FFT で周波数領域に変換している
④
画像の濃度値を反転させた後にある閾値で二値化処理を行っている
⑤
テンプレートマッチングによって特定のパターンを抽出している
4
3×3 の領域に対する線形フィルタ処理を行うとする。以下のオペレーターがどのようなフィル
タか解答せよ。
(14)
選択肢
(15)
(16)
0
0.2
0
0
1
0
-1
-1
-1
0.2
0.2
0.2
1
-4
1
-1
9
-1
0
0.2
0
0
1
0
-1
-1
-1
⑥
②
鮮鋭化フィルタ
③
① 高域通過フィルタ
②
③
平滑化フィルタ
④
メディアンフィルタ
⑤
ソーベルフィルタ
⑥
ラプラシアンフィルタ
周波数領域への変換に関する以下の説明の空欄に適する言葉を選択肢から選択せよ。
⑤
任意の周期関数 f(x)は(17)によって基本周波数成分とその高調波の和として表現するこ
①
とができる。その周波数領域への変換が(18)である。特にデジタル信号に対する(18)
④
が(19)である。デジタル画像のような 2 次元のデータに対する(19)の計算量は O(N4)
③
である。この計算量を削減するために考案されたアルゴリズムが(20)である。この時、
計算量は O(2N2log2N)となる。
選択肢
①
フーリエ変換
②
フーリエ逆変換
③
高速フーリエ変換
④
離散フーリエ変換
⑤
フーリエ級数展開
⑥
畳み込み積分
(21) 次の文の(A)~(D)に入る組み合わせとして正しいものを選択肢より選択せよ。
互いに独立した 3 つの色(三原色または三原刺激という)を適当な割合で混色すると任意
の色を生成できる。白いスクリーン上に異なる色の光を重ねて投影することで別の色を作る
ような混色を(A)といい、白い紙の上で絵の具を混ぜ合わせて別の色を作るような混色を
(B)という。
表色系(色を表す体系)には、心理物理量として色を定量的に扱う(C)と、人間が知覚
した色を定性的に扱う(D)がある。
選択肢
①
(A)加法混色、
(B)減法混色、(C)混色系、(D)顕色系
②
(A)減法混色、
(B)加法混色、(C)混色系、(D)顕色系
③
(A)加法混色、
(B)減法混色、(C)顕色系、(D)混色系
④
(A)減法混色、
(B)加法混色、(C)顕色系、(D)混色系
5
次のC言語のコードは最近傍法と呼ばれる画像の拡大・縮小アルゴリズムの一部である。幅
WIDTH1、高さ HEIGHT1 の画像を幅 WIDTH2、高さ HEIGHT2 に変更する。コードの抜けて
いる部分に合うものを選択肢から選べ。
COLOR data1[WIDTH1][HEIGHT1];
COLOR data2[WIDTH2][HEIGHT2];
-------------------------------------------------------------------------------------------------------------②
for (i = 0; i <(22); i++) {
④
for (j = 0; j < (23); j++) {
①
⑤
x = (double)(24)/(WIDTH2-1)*((25)-1)+0.5;
⑥
③
y = (double)(26)/(HEIGHT2-1)*((27)-1)+0.5;
⑦
⑧
data2[i][j].r = data1[(28)][(29)].r;
data2[i][j].g = data1[(28)][(29)].g;
data2[i][j].b = data1[(28)][(29)].b;
}
}
選択肢
①
WIDTH1
②
WIDTH2
③
HEIGHT1
④
HEIGHT2
⑤
i
⑥
j
⑦
x
⑧
y
次の説明文と最も関係が深い用語を選択肢から一つ選び解答せよ。
(30) 画素値の頻度(その画素値を持つ画素の個数)を求めたグラフ
(31) 任意の線形変換と平行移動を組み合わせた変換
③
⑤
(32) 同じ連結成分を構成する画素に同じ番号を付ける処理
⑧
(33) 連結成分の連結性を保存したまま画素を削る処理
(34) 横方向の 2 次微分と縦方向の 2 次微分の和
①
④
(35) 濃淡画像の色の違いを識別しやすくする処理の一種
②
選択肢
①
ヒストグラム
②
疑似カラー
③
アフィン変換
④
ラプラシアンフィルタ
⑤
ラベリング
⑥
モード法
⑦
フーリエ変換
⑧
細線化
⑨
ローパスフィルタ
6
が色値(255,0,0)、
が色値(0,255,0)、
が色値(0,0,255)で表されるときに、次
の色はどのような色値で表されるか解答せよ。なお、色覚に関して問題がある場合は 0 にマーク
をすること。その場合は配点に含めない。
(36)
(37)
⑥
⑦
選択肢
(38)
①
(255,0,0)
⑤
(255,255,0) ⑥
②
(0,255,0)
(39)
⑤
(0,0,255)
③
(255,0,255) ⑦
(40)
④
⑧
④
(255,127,127)
(0,255,255) ⑧
(127,127,255)
表の原画像、処理画像から、どのような処理が行われた解答せよ。
原画像(幅 320 ピクセル)
処理画像
方向に色が
にじんでいる
(41)
⑦
(42)
モザイク化。特定の範囲内の
画素が同じ色になった状態。
④
白い花が水色(シアン)になっ
てい る。つまり、色 値
(255,255,255)が(0,255,255)
になっていると考えられる
(43)
②
紺が緑、黄が青、緑が紫になっ
ている。明度や彩度は変わって
いないので色相がずれている
(44)
⑤
7
エッジを黒で求めている
(45)
⑥
(46)
ぼけたエッジがはっきり
している
③
選択肢
サイズが変わった画像はないので、
これはありえない
①
3 次補間法を用いて画像を拡大している。
②
緑、青の色値は変えず、赤の色値をすべて 0 にしている。
③
鮮鋭化フィルタを適用している(印刷でも違いが分かるように処理画像には 2 回フ
ィルタを適用している)
。
④
画像を 8×8 画素の領域に分割し、その領域ごとに平均色を求め、領域内の全画素の
一定範囲内の画素が同じ色になるのでモザイク化
色をその平均色にしている。
⑤ RGB 表色系から HSV 表色系に変換し、色相に最大値の半分を足す。例えば、色相
が 256 階調のとき、色相値 0 が 127 になり、128 が 255 になり、255 が 126
(=(255+127)%256)になるような処理を行っている。色相は環状のデータなので、
色相が 180°ずれるのに等しい。
⑥
濃淡画像に変化した後にラプラシアンフィルタでエッジを求め、エッジの部分が黒、
それ以外が白となるような 2 値化を行っている。
⑦
次の線形フィルタを複数回適用している。
斜め 3 つの画素値の平均を取っている
ので色がぼけるが、
方向の画素と
の平均なので、
方向にのみぼける
フィルタになる
1/3 0 0
0 1/3 0
0 0 1/3
⑧ 次の同次座標で表される射影変換を行っている。
cos 𝜃 − sin 𝜃 0
この変換は回転を表す
[ sin 𝜃 cos 𝜃 0]
0
0
1
8