2009-09-01[n年前へ]
■Microsoft C++ 2008 Expressで「OpenMP対応のOpenCV」と「”消しゴム版画風”画像作成ソフト」をビルトする
読めばワクワク楽しくなる「詳解 OpenCV」を読み、何だかOpenCVを使ったプログラミングをしたくなったので、無償で使うことができる開発環境Microsoft Visual C++ 2008 Express Editionで、先日、OpenCVの最新(trunk)版をビルドしてみました。
ちなみに、Windows SDK for Windows Server 2008 and .NET Framework 3.5をインストールすると、Microsoft Visual C++ 2008 Express Editionでも、OpenMP(並列計算ライブラリ)を使う設定でOpenCVをコンパイルすることができますので(上位バージョンなら必要ファイルが最初からインストールされています)、なるべく高速に計算させたいという人は、上記ライブラリをインストール後に、OpenCVライブラリをビルドし直しても良いかもしれません。
ちなみに、そういった作業をしてみると、上記必要なヘッダファイルや、デバッグ版・リリース版のライブラリが、CisualC++のディレクトリにインストールされ使うことができるようになり、それらファイルを読みに行くようしておくことで、Microsoft Visual C++ 2008 Express Editionで「OpenMP対応のOpenCV(trunk版)」をビルドすることができました。
・・・と、これだけではつまらないので、せっかくですからOpenCVを使って書かれている”消しゴム版画風”画像作成ソフト(「ナンシー"小"関 風 パッチもん版画」作成ソフト)を(ソースファイルを修正し)、ビルドしてみることにします。ソースファイル・バイナリはここに置いてありますので、そこから試しに nancyKOseki20060719.cpp をダウンロードします。そして、3行目の
#include "stdafx.h"をコメントアウトし、メイン関数の
int _tmain(int argc, _TCHAR* argv[])を
int main(int argc, char* argv[])とします。そして、OpenCV trunk版をビルドすることで作成される各種ライブラリ
highgui111.lib cxts111.lib cv111.lib cxcore111.lib ml111.lib cvaux111.lib cvhaartraining.libを「追加の依存ファイル」に追加したプロジェクトを作成し(ここで作成したプロジェクトファイルを使いまわすと、設定が面倒でなくて良いかもしれません)、そこに上記で修正した nancyKOseki20060719.cpp を加え・ビルドすると、Miscrosoft C++ 2008 ExpressでOpenMP使用のOpenCV trunk版を用いてコンパイルした「”消しゴム版画風”画像作成ソフト」ができあがる、というわけです。
今回は、OpenMPを使って書きなおしたわけでなく、単にMiscrosoft C++ 2008 Expressで(OpenMP使用の)OpenCV trunk版を使って、コンパイルを通るようにしてみただけですが、ソースファイルから実行できるアプリケーションを作成したり・自分なりのカスタマイズをしたりし始めると、少しワクワクしてくるかもしれません。
そして、クロス・プラットフォームの便利さを活用し、たとえば、iPhone版、mixiアプリ版、WEBアプリ版・・・といったものと同じように、さまざまな環境下で動くように改造したりしてみるのも面白いかもしれません。
2013-04-08[n年前へ]
■巨悪の巣窟「GOTO」駅は鳥取県米子市にあった!
難解で救い難い「スパゲティプログラム」を生む巨悪の根源な主犯格として、”goto”文の存在が指名手配される時代がありました。遙か昔はプログラムの分岐文で必要不可欠だったはずのgoto文は、いつの間にか凶悪指名手配犯となり…ついには、「ほとんど使われない存在」になりました。だから、Gotoは、今では忌み嫌われる存在ではなくなりましたが、かつては「おまえの存在が悪いんだ!」「大嫌い!」と…責め立てられる象徴のような存在の”構文”でした。
そんな、失われた過去の遺物かつ巨悪の巣窟である”Goto”という名前の駅が、JR西日本の境線にはあります。JR西日本、後藤総合車両所、後藤工場…つまりは"Goto"の巣窟のために作られた(スパゲッティプログラム量産)駅が、鳥取県米子市近くにあるのです。
保守しにくいプログラムを憎み・嫌う人はさておいて、フェライト100%な、血液中の鉄分濃度が高い人、そしてプログラミング作業も決してキライではない(それどころか結構好き)という人は…、Goto駅に行って記念写真を撮ってみたり、入場券を買ってみたり、あるいは、「Goto駅から○×駅行き切符」という「まさにこれぞGoto文な切符」を買ってみると良いかもしれません。
巨悪の巣窟と言われる、けれど心から愛すべき(愛された)存在である「GOTO」駅は鳥取県米子市にあります。…Goto構文を使ったことがある人ならば、一度は行ってみたくなるはずです。…もちろん、行った後に、後藤(Goto)駅から何処に飛ばされるかはわかりませんけれど…。
2013-11-26[n年前へ]
■「共通一次」…改め「センター試験」の数学プログラム問題
かつて「共通一次試験」と呼ばれ、今は「センター試験」という名前で出ているらしき、大学入試のための問題を面白く読んでいます。各学科それぞれ24年分の過去問題を積み上げると、意外に分量があったり・今更ながら気づかされたりすることがあります。
驚かされたことのひとつが、最近の「センター試験」の数学問題の中には、プログラミング問題もあるんだ!ということです。行番号付きのBASICとか("GOTO"とか)何十年も前を思い出して懐かしくなります。
ちなみに、2004年度のセンター試験「数1A」第5問が下の写真です。「作られた目的・動作が不明なBASICプログラム」が登場して、「このプログラムの動きを答えろ!さぁ答えろ!」という問題です。…何だか、作者不明のプログラムをメンテする気分になり、「頼むから、もっとコメントをちゃんと書いてよ!」とか「もう少しインデントとか付けるなりしてもっと読みやすくして下さい…」とプログラム作者に毒づいたり・土下座して頼み込んだりしてみたくなります…。