ソフトウェア演習 A〔ボーナス課題(課題 7)画像検索〕青野雅樹 以下の問題に対する解答を、C++言語でのプログラム等(クラスのヘッダーファイルを含む) を作成し,プログラムと実行結果(kadai7.html)を Moodle にアップロードせよ。締め切 りは 8 月 1 日(金)までとする。本課題の提出は必須ではないが、提出した場合、本科目 の課題配点分(50%)の加点対象とする。 資料 7 で紹介した JPEG を処理するプログラムを参考に、ImageRetrieval クラスを作成 し画像検索を行うプログラムを作成せよ。条件は以下のとおりである。 【入力】http://www.kde.cs.tut.ac.jp/~aono/data/images 以下にあるカラー画像で、 名前が 101.jpg から 140.jpg までの 40 画像(実際は 150.jpg までの 50 画像がある) 。各 自の作業フォルダに、“images”という名前のフォルダを作成し、そこに 40 個の画像をコ ピーし、プログラムからは“./images/xxx.jpg”のような名前で動作できるようにすること。 【検索クエリ】画像ファイル名(拡張子以外)の下 1 桁が学籍番号の末尾と同じもの(合 計4つある)の中からひとつ選ぶこと。検索対象は、クエリ画像を除く 39 枚の画像となる。 【出力】クエリ画像と類似度の高い上位 3 位の画像ファイル名(URL)を記入した HTML 【画像間の相違度計算】資料 7 で紹介した RGB 色モデルで、R,G,B 各成分を4段階で表 現したヒストグラム(プログラム 7-11, 7-12 参照)を作成する。2つの画像 A,B のヒスト グラムが与えられたとき、dist( A, B) = 3 3 3 ååå hist A [i][ j ][k ] - hist B [i ][ j ][k ] で定義す i =0 j = 0 k =0 る。この値が小さいものから上位3つを HTML に書き出すことになる。 JPEG ファイルの処理では、http://www.kde.cs.tut.ac.jp/~aono/data/lib に置いてい る、libjpeg.a をライブラリとして使うこと。 【コメントとヒント】課題の ImageRetrieval クラスには、資料で紹介した JpegImage ク ラス(プログラム 7-9)、Histogram クラス(プログラム 7-11)、MergeSort クラス(プロ グラム 7-14)等の変数を、適宜使用して結構です。本来、この課題のような情報検索では、 検索インデックス(この課題ではヒストグラム)を前処理で作成します。しかし、この課題 ではファイル数が40程度であるため、まず、(1)40枚の画像のヒストグラムを作成、 (2)クエリ画像を選択(これはプログラムの引数としてください) 、 (3)相違度計算(こ の中でソーティングが必要となります)、(4)結果の HTML の書き出し、というステップ でプログラムするといいと思います。JPEG 画像の読込や処理では、資料 7 にあるプログラ ムで使用した readJpeg を利用してください(OpenCV 等は、MAC にインストールされて いないため使用しません)。g++でリンクする際、問題内に記載した URL にある libjpeg.a を使ってください。この libjpeg.a の詳細を知りたい人は、JPEG ライブライのソースコー ドが http://www.kde.cs.tut.ac.jp/~aono/data/lib/jpeg-9.zip においてありますので、参 考にしてください。今回の課題では、この内部を知っている必要はありません。 実行例は以下のようです。ここではあくまでレイアウトならびにHTMLの中身の例とし て紹介するもので、141.jpg~150.jpgは、本課題には含まれないので注意してください。 HTMLの詳細な表現方法や配置、背景、フォントなどは各自適当に工夫して結構です。大 事なのは、各自の名前、クエリ画像名、類似する上位3つの画像ファイル名、クエリ画像 との相違度が、そのHTMLをWebブラウザから見たときに、わかることです。 http://www.kde.cs.tut.ac.jp/~aono/H26/kadai7SampleOutput.htmlにあります。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head><meta http-equiv=Content-Type content="text/html; charset=utf-8"> <title>Search from 2D</title></head> <body> <center><h2>(課題7)検索結果上位3位 (青野雅樹:01162069)</h2></center> <table border="1" bgcolor="#ccccff"> <thead><tr bgcolor="#aaaaaa"> <th bgcolor="#ccccff">クエリ画像 142.jpg</th> <th width="100"></th> <th bgcolor="#ccccff">120.jpg </th> <th bgcolor="#ccccff">141.jpg </th> <th bgcolor="#ccccff">144.jpg </th> </thead> <tr bgcolor="#cccccc" align="center"> <td bgcolor="#ffffff"><img width="192" height="128" src="http://www.kde.cs.tut.ac.jp/~aono/data/images/142.jpg"></td> <td width="100">検索結果<br/>上位3位</td> <td bgcolor="#ffffff"><img width="192" height="128" src="http://www.kde.cs.tut.ac.jp/~aono/data/images/120.jpg"></td> <td bgcolor="#ffffff"><img width="192" height="128" src="http://www.kde.cs.tut.ac.jp/~aono/data/images/141.jpg"></td> <td bgcolor="#ffffff"><img width="192" height="128" src="http://www.kde.cs.tut.ac.jp/~aono/data/images/144.jpg"></td> <tr bgcolor="#cccccc" align="center"> <td bgcolor="#ccccff">0</td> <td width="100">相違度</td> <td bgcolor="#ccccff">51832</td> <td bgcolor="#ccccff">54570</td> <td bgcolor="#ccccff">55364</td> </tr></table> </body> </html>
© Copyright 2024 ExpyDoc