lab.comp@wiki内検索 / 「C++C++/画像処理入門/1.画像処理の基礎の基礎/画像の入出力」で検索した結果

検索 :
  • C++/画像処理入門/Contents
    はじめに 想定する言語及び画像処理ライブラリ 対象者 1. 画像処理の基礎の基礎 2. 2値画像処理? 3. 画像のフィルタリング? はじめに 思いつきで初めてみました。 飽きたら突然終了します。 面倒くさがりなので、基本的には、原理の解説は可能な限り解説ページのリンクを貼る方針でいきます。 想定する言語及び画像処理ライブラリ 言語はC++、画像処理ライブラリにはBoost.GILを想定しています。 Boost.GILはテンプレートを多用しているため、多少プログラミングの経験がないと少し難解かもしれません。 対象者 C++の文法が理解できる C++でSTLの使用経験がある 画像処理関連の研究・開発に従事している、入門者 Boost.GILの使い方が知りたい人 ※ STL (Standard Template Library) については、下記を参照 ...
  • C++/画像処理入門/1.画像処理の基礎の基礎/画像の種類と構造
    画像の種類ベクタ画像 (Vector Image) とは ラスタ (Laster Image) 画像とは 画像の構造色空間 (Color Space)RGB グレースケール (Gray Scale) その他の色空間 ビット深度 (Bit Deapth) 画像の種類 ※ 画像処理入門者は、「画像の種類」は読み飛ばして構いません。あんまり最初から小難しい話をするとイヤになるので。 コンピュータ上で扱う画像の形式には、ベクタ画像とラスタ画像の2種類がありますが、このサイトで扱う画像処理は、全てラスタ画像を対象としてます。 これ以降、単に「画像」と言った場合にはこのラスタ画像を指すものとします。 ベクタ画像 (Vector Image) とは 直線や曲線といった幾何情報をデータとして保持している形式です。 そのため、コンピュータ上で描かれたグラフィクスを保存するには向いていま...
  • C++/画像処理入門/1.画像処理の基礎の基礎
    画像の種類と構造 画像の入出力?
  • Menu
    メモ メモ2 各種テンプレート SSD導入メモ? コンテンツ Onlinesoft Windows Tips Solaris Tips C++/CLI C++ Tips ガイドライン Boost テクニック デザインパターン GUIプログラミング入門 (Qt) 画像処理入門 アルゴリズム入門 Java Tips デザインパターン trac インストールと初期設定 PowerShell その他 VirtualBoxをWindowsサービス化 (Windows 7) VirtualBoxをWindowsサービス化 (Windows 10) ライブラリ リンク 画像処理関連 OpenCV GIL (Generic Image Library) Libjpeg おもしろ画像 おもしろ画像1 サイト内検索 検索 ...
  • C++ - 画像処理 - OpenCV
    OpenCV (Open Computer Vision Library) http //sourceforge.net/projects/opencvlibrary/ Intelが提供しているオープンソースのコンピュータビジョンライブラリ。 画像処理・コンピュータビジョンの便利な関数が実装されている(オプティカルフロー、snakesなど)。 インストール カメラキャプチャ
  • C++/CLI
    C++とC++/CLIの型対応表 ネイティブ (unmanaged) 関数のラップ
  • C++ - Links
    画像処理ライブラリ 画像圧縮・展開ライブラリ 画像処理ライブラリ Adobe GIL (Generic Image Library) http //opensource.adobe.com/gil/ Boostに採択されたらしい。 Vigra http //kogs-www.informatik.uni-hamburg.de/~koethe/vigra/ 結構メジャーっぽい。 OpenCV http //sourceforge.net/projects/opencvlibrary/ Intel製のコンピュータビジョンライブラリ。 CxImage http //www.codeproject.com/bitmap/cximage.asp FreeImage http //freeimage.sourceforge.net/ ImageMagic http //...
  • Cpp
    Tips ガイドライン Boost テクニック デザインパターン GUIプログラミング入門 (Qt) 画像処理入門 アルゴリズム入門
  • C++とC++/CLIの型対応表
    C++型 C++/CLI型 bool System.Boolean signed char System.SByte unsigned char System.Byte wchar_t System.Char double, long double System.Double float System.Single int, signed int, long, signed long System.Int32 unsigned int, unsigned long System.UInt32 __int64, signed__int64 System.Int64 unsigned__int64 System.UInt64 short, signed short System Int16 unsig...
  • GIL (Generic Image Library)
    Generic Image Library (GIL) Adobeが提供しているオープンソースの画像処理ライブラリ。 Boost C++ Librariesに加えられました。 Adobe 公式サイト http //opensource.adobe.com/gil/index.html Boost ドキュメント http //www.boost.org/doc/libs 稲葉一浩氏による解説 (Let s Boost) http //www.kmonos.net/alang/boost/classes/gil.html 公式サイトのTutorial、DesignGuideの非公式日本語訳 http //sites.google.com/site/twinkleofsilence/ 覚え書き 画像の読み込み、保存 座標演算 (point2) 色空間の変換...
  • C++ - 画像処理 - Libjpeg
    Libjpeg http //www.ijg.org/ インストール (Visual Studio 2005) 上記のページからソースコードをダウンロードし、 jconfig.vc makefile.vc を jconfig.h makefile にリネームする。 次に、 nmake でライブラリをビルドし、 jpeglib.h jerror.h jconfig.h jmorecfg.h をインクルードディレクトリに、 libjpeg.lib をライブラリのディレクトリにコピーし、終了。 追記 vc80.pdb がないと、警告が出たのでこれもlibjpeg.libと同じディレクトリにコピーしておく。
  • C++/Boost
    Boost C++ Libraries http //boost.org/ Boostとは インストール Boostとは Boost - Wikipedia Let's Boost インストール Windowsの場合、Boost Consultingからコンパイル済みのバイナリをダウンロードできる。 Products - Free Downloads へジャンプし、好きなバージョンのインストーラをダウンロードしてインストールすればOK。 ※ ただし、インストーラは最新版が用意されるのが遅い傾向があります。 http //www.boost.org/users/download/ 最新のバージョンを使いたい人は、上記URLから最新のソースとbjamをダウンロードし、 ソースのルートディレクトリで下記コマンドを実行す...
  • C++/Technique
    compile-time-polymorphism (コンパイル時多態) C++でプロパティ コンパイラが自動生成する関数を使用禁止にする
  • C++/Guidelines
    本とかに書かれている、C++の書き方の鉄則、作法です。 とりあえずある程度たまるまでは分類せずに並べていきます。 鉄則 定数はconst宣言する 変更を可能にしたい場合のみconstを外す マクロ関数を使わずにインライン関数テンプレートを使う ガイドライン 余計なコメントを付けない マジックナンバーを避ける グローバル変数を避ける 変数は宣言と同時に初期化する?
  • ネイティブ (unmanaged) 関数のラップ
    ネイティブ (unmanaged) な関数を、C++/CLI (managed) でラップして使う。 環境はVisual Studio 2005。 プロジェクトの参照設定や、インクルードディレクトリの設定など、適切に行うこと。 設定がわからない人は下部にあるリンクを参考にしてください。 ネイティブ (unmanaged) 関数hello.hpp hello.cpp C++/CLI (managed) によるラッパクラスhellolib.hpp hellolib.cpp managedな言語 (C#) からの呼び出しProgram.cs 参考リンク アーカイブ ネイティブ (unmanaged) 関数 hello.hpp #pragma once #include string void hello(); void show( int i ); void show...
  • C++/Guidelines/余計なコメントを付けない
    コメントを付けることは、よいことである。 しかし、適切でないコメントは、有害でしかない。 例えば、次のようなコードがあったとする。 // 配列aの0~nに0を代入 for (int i = 1; i = N; ++i) { a[i] = 0; // 配列aのi番目の要素に0を代入 } 上記のようなコメントは、何をしたいのか一目で分からないばかりでなく、内容が間違っている。 コメントは厄介なものである。 コンパイラは命令文の文法的な誤りは指摘してくれても、コメントの誤りに関しては何ら教えてはくれない。 コードを修正する場合は、必ず、コメントも修正するように意識すべきだ。 また、「処理の説明」をしているコメントは、命令文との重複であり、ソースコードの無駄づかいにすぎない。 ソースコードの行数が増えるほど、反比例して理解しやすさが損なわれること...
  • Cpp/アルゴリズム入門/遺伝的アルゴリズムによる巡回セールルマン問題
    参考URL 第5章 知識情報処理入門 http //msdn.microsoft.com/ja-jp/academic/cc998607.aspx
  • C++/Tips
    環境に非依存なTips 環境依存Tips STL リンク 環境に非依存なTips 円周率π(pi)の定義の仕方 2次元配列へのラスタ捜査 関数に配列をリファレンスで渡す 実行時間を計測する 直交座標から角度を求める 環境依存Tips ただし、今のところはVisual Studio 2005の環境のみ。 特定の警告 (warning) を抑制する リンクするライブラリをコードに埋め込む Visual Studio 2005のIntelliSenseに関するTips STL STL (Standard Template Library)とは STLでファイルコピー 内積を求める 関数オブジェクト雛型 コマンドライン引数(配列)をダンプ リンク シリアルポート (COM、RS232C) のオープンとクローズ トップメニューから...
  • Cpp/Qt
    はじめに C++でGUIプログラミングを行います。 ただし、C++の標準ライブラリにはGUIのためのライブラリがありません。 C++でGUIプログラミングをするためのライブラリは色々ありますが、ここではQtというライブラリを使用します。 参考リンク:Qt (Wikipedia) 対象者 C++の文法が理解できる コンテンツ +開発環境のインストール 開発環境のインストール 下記のサイトからLGPl/Free版のQt SDK最新版をダウンロードしてインストールする。 http //qt.nokia.com/downloads-jp ※ 本稿執筆時の最新版はQt SDK 2009.04 (qt-sdk-win-opensource-2009.04.exe) ですが、なぜかQt Creatorが日本語化されていません。 日本語で使いたい場合は、下記サイトか...
  • C++/Tips/STL
    STL (Standard Template Library)とは STLでファイルコピー 内積を求める 関数オブジェクト雛型 コマンドライン引数(配列)をダンプ
  • DesignPattern
    デザインパターンにおける、JavaとC++の実装例を置いておきます。 解説はそのうち気が向いたらつけます。 Iterator パターン Singleton パターン
  • 円周率π(pi)の定義の仕方
    普通、π(pi)は #define PI 3.14.... で定義するが、計算式で簡単に求めることができる。 #define PI 6*asin( 0.5 ) とすればよい。 Wikipedia 円周率を参照。 C++では、プリプロセッサのdefineを使わず、 static const double PI = 6*asin( 0.5 ) を使ったほうがよい。
  • FrontPage
    オンラインソフトの紹介 Windows、LinuxのTips プログラミングTips (C++, C#, Java) について書いていきます。 ブログが全部消えてしまったので、今まで載せていたオンラインソフトは思い出したら順に追加していきますw 個人用メモなのでコピペしたものは、原則として許可を取ったものではありません。不都合がある場合は、連絡してください(このページにコメント投稿してください)。削除します。 2010/09/11 (Sat) Boost.勉強会 #2で、Boost.GIL のセッションを担当してプレゼンしました。 発表資料はこんな感じです。 更新履歴 取得中です。 名前 ...
  • C++/Boost/Install
    Windowsの場合、Boost Consultingからコンパイル済みのバイナリをダウンロードできる。 Products - Free Downloads へジャンプし、好きなバージョンのインストーラをダウンロードしてインストールすればOK。 ※ ただし、インストーラは最新版が用意されるのが遅い傾向があります。 http //www.boost.org/users/download/ 最新のバージョンを使いたい人は、上記URLから最新のソースとbjamをダウンロードし、 ソースのルートディレクトリで下記コマンドを実行する。 bjam --toolset=[toolset name] --stagedir=. satage
  • C++/Tips/直交座標から角度を求める
    直交座標 (x, y)から角度θを求める。 arctan( y / x ) の式で求めることができるが、ヘッダ cmath に含まれる関数tan()の戻り値は[-π/2 ~ +π/2]となっており、 180度周期であるため、360度周期の角度を求めることができない。 そのため、atan2()を使用する。 cmath ヘッダをインクルードし、 atan2( y, x ); のように使う。戻り値は[-π ~ +π]である。 ラジアンから度数法に直すときは、 double angle = atan2( y, x ) * 180/PI; とすることで、[0 ~ 360]の値が得られる。 int angle = static_cast int ( atan2( y, x ) * 180/PI + 360 ) % 360; とすれば、[0 ~ 359]...
  • C++/Boost/Introduction
    Boost - Wikipedia Let's Boost
  • OpenCVのインストール
    Visual Studio 2005でのインストール手順について。 http //sourceforge.net/projects/opencvlibrary/ からWin用のバイナリをダウンロードしてインストール。 OpenCVで作成した実行ファイル(*.exe)を実行するには、OpenCVのライブラリ (*.dll) にパスを通す必要がある。インストール先がデフォルトの場合、 C \Program Files\OpenCV\bin にあるため、パスを通しておく(システムのプロパティから環境変数を設定する)。 それとは別に、コンパイラにヘッダとライブラリの位置を教えてやる。 「ツール」→「オプション」→「プロジェクトおよびソリューション」→「VC++ディレクトリ」を選択する。「ディレクトリを表示するプロジェクト」で、以下の項目を設定する。 「インクルー...
  • DesignPattern/IteratorPattern
    Iteratorパターンの例です。 気が向けばそのうち解説文を書きます。 一般的なIteratorパターンの実装例Java C++ 一般的なIteratorパターンの実装例 Java package sample.design_pattern; interface Iterator { public abstract boolean hasNext(); public abstract void next();  public abstract Object getValue();}   interface Aggregate { public abstract Iterator iterator();&#...
  • C++/Guidelines/定数はconst宣言する
    const 宣言の例 Code // 良くない例#define PI 3.14 // 良い例const double pi = 3.14;const char * const name = "hoge";const std string language("cpp"); class hoge { static const int num = 3;}; class foo { enum { num = 3 };}; class bar { static const double rate;};const double foo rate = 2.1; 
  • DesignPattern/Singleton
    singleton パターンです。 気が向けばそのうち解説文を書きます。 C++ #include iostream  class singleton {private static singleton* p_instance_; // 唯一のインスタンス static bool destroyed_; // インスタンスの廃棄フラグ public static singleton instance() { if (!p_instance_) { if (destroyed_) { // 既にインスタンスが廃棄されていたらエラー on_...
  • GIL - 画像の読み込み、保存
    #pragma comment( lib, "libjpeg.lib" ) #pragma warning( disable 4996 ) #include boost/gil/gil_all.hpp #include boost/gil/extension/io/jpeg_io.hpp using namespace boost gil; int main() { rgb8_image_t img; jpeg_read_image( "d \\lena.jpg", img ); jpeg_write_view( "test.jpg", view( img ) ); }
  • C++/Tips/Technique/CppProperty
    http //www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1615.pdfから参照 Code? Code?
  • C++/Guidelines/定数はconst宣言する/Code
    // 良くない例#define PI 3.14 // 良い例const double pi = 3.14;const char * const name = "hoge";const std string language("cpp"); class hoge { static const int num = 3;}; class foo { enum { num = 3 };}; class bar { static const double rate;};const double foo rate = 2.1; 
  • C++/Guidelines/変更を可能にしたい場合のみconstを外す
    constをデフォルトで使用し、変更を可能にしたい場合のみconstを外す。 Code const char * const massage = "hello."; void print(const Foo * const foo) {} void print(const Foo foo) {} const std vector int const_iterator it = vec.begin(); class int_array {public // ... const std size_t size() const { return data_.s...
  • C++/Guidelines/マクロ関数を使わずにインライン関数テンプレートを使う
    インライン関数テンプレートの例 Code // 良くない例#define MAX(a,b) ((a) (b)?(a) (b)) // 良い例template typename T inlineT max(const T arg1, const T arg2) { return arg1 arg2 ? arg2 arg1;} 
  • C++/Tips/Technique/コンパイラが自動生成する関数を使用禁止にする
    気が向いたら解説します。 Code class foo {private foo(); // デフォルトコンストラクタを使用禁止 foo(const foo ); // コピーコンストラクタを使用禁止 foo operator= (const foo ); // 代入演算子を使用禁止}; 
  • C++/Guidelines/変更を可能にしたい場合のみconstを外す/Code
    const char * const massage = "hello."; void print(const Foo * const foo) {} void print(const Foo foo) {} const std vector int const_iterator it = vec.begin(); class int_array {public // ... const std size_t size() const { return data_.size(); }  // constなオブジェクトのた...
  • メモ2
    {{{ # Doxyfile for Doxygen 1.7.4 ################################################################################ # Project ################################################################################ DOXYFILE_ENCODING = UTF-8 # このタグでは、設定ファイルのすべての文字に使うエンコードを指定します。 # デフォルトはUTF-8で、このタグが最初に指定される前のすべてのテキストもUTF-8です。 # Doxygenはlibiconv(libcにビルトインされているiconv)を使って変換しています。 # エンコードの種類につい...
  • C++/Tips/Technique/CompileTimePolymorphism
    東方算程譚 - アヒルの判別から参照。 Code #include iostream  struct point_tag {};struct vector_tag {}; struct Point { typedef point_tag type;}; struct Vector { typedef vector_tag type;}; // Point用 printvoid print_(const Point target, point_tag) { std cout "Point\n";} // Vector用 printvoid print_(co...
  • C++/Tips /Technique/コンパイラが自動生成する関数を使用禁止にする/Code
    class foo {private foo(); // デフォルトコンストラクタを使用禁止 foo(const foo ); // コピーコンストラクタを使用禁止 foo operator= (const foo ); // 代入演算子を使用禁止}; 
  • C++/Tips/Technique/CompileTimePolymorphism/Code
    #include iostream  struct point_tag {};struct vector_tag {}; struct Point { typedef point_tag type;}; struct Vector { typedef vector_tag type;}; // Point用 printvoid print_(const Point target, point_tag) { std cout "Point\n";} // Vector用 printvoid print_(const Vector target, vector_tag&#...
  • C++/Guidelines/マクロ関数を使わずにインライン関数テンプレートを使う/Code
    // 良くない例#define MAX(a,b) ((a) (b)?(a) (b)) // 良い例template typename T inlineT max(const T arg1, const T arg2) { return arg1 arg2 ? arg2 arg1;} 
  • おもしろ画像1
    Apple りんごにしか見えない 捜査のプロが分析 人口の5~6割が該当 ヘルプミー アメリカが北朝鮮を攻撃したら… 辻、加護の見分け方 酷い言われようだ。 セクシーなポーズをとりつつ熱いベーゼを求める男 金の亡者
  • 2次元配列へのラスタ捜査
    #include iostream #include vector #include algorithm #include boost/timer.hpp #include boost/numeric/ublas/matrix.hpp  int main(){ namespace ublas = boost numeric ublas; const int M = 10000, N = 20000;  // boost ublas使用版 { ublas matrix int a( M, N );  boost timer t; std fill( a.data().begin(),...
  • 関数に配列をリファレンスで渡す
    #include iostream using namespace std; #define N 5 void func( int ( a )[N][N] ) { a[0][0] = 10;} int main(){ int a[N][N];  for( int i=0; i N; ++i ) { for( int j=0; j N; ++j ) { a[i][j] = i + j; } }&...
  • 内積を求める
    #include iostream #include vector #include numeric using namespace std; int main(){ vector int v1( 5 ), v2( 5 );  for( int i=0; i v1.size(); ++i ) { v1[i] = i; v2[i] = i + 1; }  int x = inner_product( v1.begin(), v1.end(), v2.begin(), 0 );  c...
  • DesignPattern/IteratorPattern/JavaCode1
    package sample.design_pattern; interface Iterator { public abstract boolean hasNext(); public abstract void next();  public abstract Object getValue();}   interface Aggregate { public abstract Iterator iterator();}   class Element { private int value;  public Element(int valu...
  • DesignPattern/IteratorPattern/CppCode1
    #include iostream using namespace std; template typename T struct iteratable { virtual ~iteratable() {}  virtual const bool has_next() = 0; virtual void next() = 0; virtual const T get_value() = 0;}; template typename Iterator struct aggregatable { virtual ~aggregatable() {} virtual Itera...
  • Onlinesoft
    ファイル関連 インターネット・ネットワーク関連 マルチメディア関連 ユーティリティ関連 システム関連 ファイル関連 圧縮・解凍 Lhaz ポップアップでできる圧縮・解凍ソフト。もちろん、ダブルクリックで解凍とかも可能。解凍せずに書庫閲覧できる機能がステキ。 エディタ サクラエディタ 軽くて多機能なエディタ。SDIでタブなインタフェース。 Mery シンプルかと思いきや、多機能なテキストエディタ。 Visual Studio Code Microsoft 製の Electron 系エディタ。 ファイラ X-Finder 多機能ファイラ。 CubicExplorer Portable シンプルなタブ型ファイラ オフィスソフト Open Office オープンソースのオフィスソフト。ファッキンWindows...
  • PowerShell
    PowerShell のパイプライン処理
  • @wiki全体から「C++C++/画像処理入門/1.画像処理の基礎の基礎/画像の入出力」で調べる

更新順にページ一覧表示 | 作成順にページ一覧表示 | ページ名順にページ一覧表示 | wiki内検索