私が、この「Visual C++の勉強部屋」を始めたのは2000年で、まだ大学に在職中でした。その頃はVisual C++ 6.0に関心が集まっていて、大学で教育用に採用しましたが、学生が難しいといって困っていました。そこで、まずは学内向けに作成し、その後一般に公開したのです。
 最近は、プログラム言語の動向が変わり、Visual C++は、一部の専門性が非常に高いプログラマ用となり、サンデー・プログラマやホビーストには、Java、Python、JavaScriptの方が人気です。
 そのような理由で、この「Visual C++の勉強部屋」のページビューも、かなり落ちているものと思われます(最盛期には平均600P.V./日くらいありました)。また、私の高齢化もありますので、ぼつぼつ、「Visual C++の勉強部屋」の「終活」に入ろうかと思います。
 まずは、手始めに、下記の赤字で書いたテーマは、2018年8月31日をもって終了し、削除したいと思います。お手元に残しておきたい方は、ダウンロードをお願いいたします。
 永らくのご愛顧をありがとうございます。




 理工系、特に電気情報系、の学生と技術者を対象としたVisual C++の解説を行います。ただし、初めてプログラムを学ぶ全くの初心者向けではありません。作成時期が異なるため、Visual C++のVersionが異なっていますが、本質的に変わりはありません。
 本資料の一部のJava版が(株)翔泳社のウエブサイトCodeZineにありますので、こちらもご利用ください(Java版とある場所をクリックして下さい)。

 (株)マイナビ出版より、「C#画像処理・数値プログラミング - Visual C# 2017対応 - (プレミアムブックス) 」が新たに発売されました。これは、2014年に同社より発売された「Visual C# 2013画像処理・数値プログラミング」を、最新のVisual Studio 2017で確認して書き直したものです。この本で紹介しているものは、下記「マイナビ」欄に「C#」で記してあります。
 あらたに、同社による本書籍のサポートサイトから、本書で紹介したすべてのコードをプロジェクトファイルごとダウンロードできるようになりました。
 
 Visual Studio 2017で画像処理のUniversal Windows Platform(UWP)アプリを作成しようとすると、どうしてもVisual C#を使わざるを得ない状態になりました。それが「Visual C#とWin2DによるUWPでの画像処理」シリーズです。
 OpenCV3.3.0が2017年8月に公開されました。OpenCV3.3.0とVisual C++ 2017との組み合わせで、古いバージョンの資料を確認しています。確認済みのものは、コメントとともに(もしあれば)改版しています。この場合は、「最新版」欄に赤字で示してあります。





Visual C#とWin2DによるUWPでの画像処理

サブタイトル(クリックしてください) 第1版 最新版
  ( 1) Visual C#でプロジェクトを作成し、Win2Dの画像処理Effectクラスを使う 2017. 8. 8.
  ( 2) 積和演算、色変換、明暗部強調などの画像処理Effectクラスを使用する 2017. 8.16.  
  ( 3) ConvolveMatrixEffectクラスで、平滑化、鮮鋭化、エッジ検出を行う 2017. 8.21.  
  ( 4) CompositeEffectクラスのModeプロパティを色々と変えて画像を合成する 2017. 9. 4.  
  ( 5) BlendEffectクラスのModeプロパティを色々と変えて画像を混合する 2017. 9.13.  
  ( 6) その他の有用なEffectクラスを確認する 2017. 9.18.  


Visual Studio Community 2017の使い方
Universal Windows Platformアプリケ―ションの紹介が中心です

    サブタイトル(クリックしてください) 第1版 最新版
  ( 1) Visual C++ 2017をインストールして、Universal Windows Platformアプリケーション作成の準備をする 2017. 4.12.  
  ( 2) TextBoxへ入力して演算結果をTextBlockへ表示する 2017. 4.20. 2017. 6.12.
  ( 3) 水平Sliderを使用してRGB値から色を作成し、HSVに変換する 2017. 5. 2.  
  ( 4) CheckBox、RadioButton、ToggleSwitchを使用して簡単な計算を行う 2017. 5.11.  
  ( 5) Canvasを使用して、計算結果を文字列で表示する 2017. 5.24.  
  ( 6) Canvasを使用して、1~3次式をグラフで表示する 2017. 6. 4.  
  ( 7) Canvasを使用して、リサージュ波形を描画する 2017. 6.13.  
  ( 8) CanvasにMandelbrot図形を描く 2017. 6.20.  
  ( 9) CanvasにGumowski-Mira写像を描画する 2017. 6.28.  


OpenCV3.2.0に関するメモ
OpenCV3.1.0との違いなどをメモ的に記述しています(ここをクリック)



OpenCV3.1.0とVisual C++ 2015による画像処理と認識
OpenCV3.1.0になって、大きく変わったもののみです(欠番あり)
「最新版」欄の赤文字は、OpenCV3.3.0とVisual C++ 2017で確認済み

    サブタイトル(クリックしてください) 第1版 最新版
  ( 1) OpenCV3.1.0をダウンロードしてVisual Studio Community 2015で使う 2016. 7. 2.. 2017. 9.25.
  ( 2) 原画像をRGB成分に分解してピクセル単位の画像処理をする 2016. 7.10. 2017. 9.24.
  ( 3) グローバルしきい値とローカルしきい値を用いた二値化の比較 2016. 7.17. 2017. 9.25.
  ( 4) HSV表色系へ変換しての処理と道路標識の検出への応用 2016. 7.25. 2017. 9.26.
  ( 5) 画像のヒストグラムを取得し、コントラストの改善と画像の検索を行う 2016. 8. 2. 2017. 9.27
  ( 6) エッジ保存平滑化フィルタを比較する 2016. 8.14. 2017. 9.28.
  ( 7) 各種エッジ検出フィルタと関連類似関数を試みる 2016. 8.22. 2017. 9.29.
  (10) OpenCV3.1.0で用意されている各種特徴点検出器を試す 2016. 9. 9. 2017. 9.29.
  (11) BRISK、ORB、KAZE、AKAZEを用いて特徴点のマッチングを採る 2016. 9.18. 2017. 9.30.
  (14) ニューラルネットワークで数字を判別する 2016. 9.27. 2017. 9.30.
  (15) SVM(サポートベクターマシン)を使ってみる 2016.10. 8. 2017.10. 1.
  (16) ブーストで、顔図形の分類と二次元座標の分類を試みる 2016.10.17. 2017.10. 1.
  (20) tsukuba画像とaloe画像を使って視差マップ(disparity map)を作成する 2016.10.30. 2017.10. 1.
  (21) ホモグラフィー変換やStitcherを用いて二枚の画像を合成する 2016.11.9. 2017.10. 1.


OpenMPとVisual C++による並列処理
Win32アプリケ―ションです

    サブタイトル(クリックしてください) 第1版 最新版
  ( 1) OpenMPを使えるようにして、forループの並列演算を試みる 2016 2.16.. 2016. 2.29.
  ( 2) Visual C++のデフォルト並列化機能と、Qpar、OpenMPの使用効果を比較する 2016. 2.24. 2016. 3. 2. 
  (2A) Win32アプリケーションで、グラフを用いてVisual C++、Qpar、OpenMPの使用効果を比較する 2016. 3.20.  
  ( 3) より長い処理を、多数回測定して、OpenMPの効果を確認する 2016. 3. 8.  
  ( 4) 画像反転(ネガ化)とグレイ化の簡単な画像処理で、OpenMPの効果を確認する 2016. 3.15.  
  ( 5) コンボリューションを用いた画像処理で、OpenMPの効果を確認する 2016. 3.26.  
  ( 6) ヒストグラム作成は、OpenMPの効果が期待できない 2016. 4. 3.  
  ( 7) コントラスト強調では、OpenMPの効果があまりない 2016. 4.12.  
  ( 8) 補間処理を含む画像の回転では、OpenMPの効果がある 2016. 5. 2.  
( 9) テンプレートマッチングでは、OpenMPの効果が大きい 2016. 5.14.


Visual Studio Community 2015の使い方
Win32アプリケ―ションのGUI紹介が中心です

    サブタイトル(クリックしてください) 第1版 最新版
  ( 1) Visual C++ 2015をインストールして、Win32コンソールアプリケーションを作成する 2015.11.19.  
  ( 2) Visual C++でWindowsフォームアプリケーションを作成する 2015.11.24.  
  ( 3) Win32アプリケーションで、メニューを作成する 2015.11.30.  
  ( 4) Win32アプリケーションで、ボタン類を使用する 2015.12. 9.
  ( 5) Win32アプリケーションで、コンボボックスを使用する 2015.12.15.  
  ( 6) エディット、コンボボックス、スタティックの各コントロールとボタンを使用する 2015.12.25.  
  ( 7) 水平と垂直のトラックバーを使用して色を作成する 2016. 1. 9.  
  ( 8) マウスで座標位置を入力して、回帰直線を求める 2016. 1.29.  


OpenCVとVisual C++ による画像処理と認識
全面的にOpenCV2.4.10のライブラリを使用したものです
「最新版」欄の赤文字は、OpenCV3.3.0とVisual C++ 2017で確認済み

    サブタイトル(クリックしてください) 第1版 最新版
  ( 1) OpenCVをダウンロードしてVisual Studioで使う 2014.11.26. 2015. 1.23.
  ( 2) 原画像をRGB成分に分解してピクセル単位の画像処理をする 2014.12. 2. 2014.12. 9.
  ( 3) 二値化のいろいろと、トラックバーの使用 2014.12. 8.  
  ( 4) HSV表色系への変換rと道路標識の検出 2014.12.13. 2016. 7.21.
  ( 5) ヒストグラムを作成し、equalizeHist関数で画像を補正する 2014.12.20.  
  ( 6) いろいろな平滑化フィルタで画像を加工する 2014.12.27.  
  ( 7) いろいろなエッジ検出フィルタを比較する 2014.12.31.  
  ( 8) Hough変換を用いて、直線を検出する 2015. 1. 8. 2017.10. 2.
  ( 9) Hough変換を用いて、円を検出する 2015. 1.15. 2017.10. 3.
  (10) いろいろな特徴検出法を試し、道路標識に応用する 2015. 2. 3.  
  (11) ORBを用いて特徴点のマッチングを行う 2015. 2.13.  
  (12) テンプレートマッチングで道路標識と数字を検出する 2015. 2.20. 2017.10. 4.
  (13) カスケード分類器と訓練済みデータで顔と人物を検出する 2015. 3. 1. 2017.10. 4..
  (13A) HOGDescriptorとSVMで人(歩行者)を検出する 2015.11. 7.
  (14) ニューラルネットワークで数字と文字を識別する 2015. 3.11.  
  (15) サポートベクターマシンを使ってみる 2015. 3.24.  
   (16) ブースティングで、簡単な真顔と偽顔の図形を識別する 2015. 4.21.  
  (17) 三次元再構成の準備として、カメラキャリブレーションを行う 2015. 5.21.  
  (18) 色情報と隠点消去処理を加えて、3D→2D変換を行う 2015. 6. 6.  
  (19) 二枚のカメラ画像から基礎行列を求めるのは難しい 2015. 7. 4. 2015. 9.25.
  (20) Tsukuba標準画像その他を使って視差マップ(disparity map)を作成する 2015. 7.27. 2015.10.10.
  (21) ホモグラフィー変換やStitcherを用いて二枚の画像を合成する 2015. 8.28.  
  (22) triangulatePoints関数を詳しく調べる 2015. 9.11.  
  (23) findFundamentalMat関数を詳しく調べる 2015. 9.25.  
  (24) reprojectImageTo3D関数とprojectPoints関数を使う 2015.10.14.


Visual C++ 2008 Express Editionの易しい数値計算
計算のみはコンソールで、計算してグラフ化はWindowsフォームです

    サブタイトル(クリックしてください) 第1版 最新版 マイナビ
   ( 1) 最初はHello Worldから 2008. 2.21.          
  ( 2) 数値を数字(文字列)に変換して表示し、ファイルに保存する 2008. 2.29.    C#
  ( 3) 入力した数字(文字列)を数値に変換して統計処理をする 2008. 3. 7.  
  ( 4) ファイルからデータを読み込んで統計処理をする 2008. 3.11.  
  ( 5) 連立方程式を解いて、回路計算をする 2008. 3.19.  
  ( 6) RungeKutta法で一元微分方程式を解き、回路の過渡現象を計算する 2008. 4. 4.  2014. 2.21. C#
  ( 7) RungeKutta法で二元連立微分方程式を解き、LCR回路の過渡現象を計算する 2008. 4.10.  2014. 2.21.  C#
  ( 8) Taylor展開の計算と、交流理論の簡単な複素数計算 2008. 4.21.  
  ( 9) T型-π型変換と、それを用いたT型回路の計算 2008. 5.23.  
  (10) 定積分の計算と、正弦波形の平均値と実効値 2008. 6.23.  
    (11) 波形の数値積分と電気回路への応用 2008. 7.16.  


Visual C++ 2010 Expressの易しい使い方
グラフィックスに重点を置いたWindowsフォームアプリケーションです

    サブタイトル(クリックしてください) 第1版 最新版 CodeZine マイナビ
  ( 1) コンソールアプリケーションの場合             2010. 5.20.     C#
  ( 2) プログラムの実行結果をフォームに出力する 2010. 5.20.      C#
  ( 3) テキストボックスへ入力して結果をラベルに出力する 2010. 5.21. 2010. 6.3.   C#
   ( 4) メニュー選択を使用する入力と別フォームを使用する入力 2010. 5.24.     C#
  ( 5) プリンタに出力したり、ファイルに出力したりする 2010. 5.25.     C#
  ( 6) Graphicsを用いて、画面上にグラフを描く 2010. 5.25.      C#
  ( 7) マウスでパターンを入力し、ファイルに格納する 2010. 5.27. 2011.3.17.  
  ( 8) 一次元DCTプログラムを作ってみよう 2010. 5.28.     C#
  ( 9) リサージュ波形を画面に表示させる 2010. 5.30.     C#
  (10) 標準C++ライブラリのcomplexクラスを使用し、複素数計算の結果をグラフに表す 2010. 6. 2. 2014.2.10   C#
  (11) C++標準のcomplexクラスを用いて水晶発振子の等価回路特性を描く 2010. 6. 7.    
  (12) 高速化のためにcomplexクラスを使用しないでMandelbrot図形を描く 2010. 6.13.   Java版 C#
  (13) 三次元グラフィックの例題としてのFET静特性の表示 2010. 6.24.    
  (14) Turtle Graphicsを用いた、再帰プログラムの例題としてのフラクタル図形の描画 2010. 7.18.   Java版  
  (15) 4次Runge-Kutta法による微分方程式の求解とLorenz Attractor図形の描画 2010. 7.27.      C#
  (16) 複素数演算による等角写像と電磁気学への応用 2010.10.18.     C#
  (17) Lagrange、Newton、Splineなどの色々な補間方式を実現する 2010.10.30. 2014.2.21. Java版 C#
  (18) 最小二乗法により、測定データに多項式を当てはめる 2010.11. 7.   Java版 C#
  (19) Mandelbrot図形の一部をクリックして、対応する条件でJulia図形を描く 2010.11.23.   Java版
  (20) 三次元グラフで陰線処理を行う 2010.12. 3.   Java版


Visual C++ 2010 Expressの易しい画像処理
画像処理を目的としたWindowsフォームアプリケーションです

    サブタイトル(クリックしてください) 第1版 最新版 CodeZine マイナビ
  ( 1) 原画像を読み込み、RGBとCMYの三色に分解する                   2010.12. 7.      
  ( 2) 原画像のピクセル毎のRGBデータを加工する 2010.12.11.     C#
  ( 3) 原画像のRGBデータをHSV(HSB)表示に変換して加工する 2010.12.16.   Java版 C#
  ( 4) 原画像のヒストグラムを変換して新しい画像を描く 2010.12.20.   Java版 C#
  ( 5) コンボリューションを用いた画像の平滑化、鮮鋭化、エッジ検出 2010.12.26.   Java版 C#
  ( 6) 画像の拡大と縮小 2011. 1. 7. 2011.1.25.    
  ( 7) エッジ検出と線画化 2011. 1.15.   Java版 C#
  ( 8) 分かりやすいアルゴリズムで二値画像を細線化する 2011. 1.19. 2014. 2.8. Java版 C#
  ( 9) モノクロ化と二値化(グローバルしきい値法、ローカルしきい値法) 2011. 1.24.     C#
  (10) 画像の回転と拡大 2011. 2. 2.   Java版  


Visual Studio Express 2012 ( Visual C++ ) の易しい使い方
Win32アプリケーションの作成例の紹介が中心です

    サブタイトル(クリックしてください) 第1版 最新版 マイナビ
  ( 1) コンソールアプリケーションの場合             2013. 5.30.   C#
  ( 2) プログラムの実行結果をWindowsフォームに出力する 2013. 6. 5. 2015.11.23. C#
  ( 3) Win32アプリケーションを始める 2013. 6.27.  
  ( 4) Win32で、計算結果を表示、ボタンを使う 2013. 7. 4. 2015.11.25. 
  ( 5) Win32で、グラフを表示、メニューを使う 2013. 7.17  
  ( 6) Win32で、画像を読み込み、簡単な画像処理を行う 2013. 7.30.  
  ( 7) Win32で、ファイルから画像を読み込み、コンボリューションによる画像処理を行う 2013. 8.20.  


Visual Studio Express 2013 ( Visual C++ ) の新しい使い方
C++の比較的新しい仕様を用いたコンソールアプリケーションが中心です


    サブタイトル(クリックしてください) 第1版 最新版
  ( 1) コンソールアプリケーションで、vector、for_each、ラムダ式を使う 2014. 3.31.  
   ( 2) コンソールアプリケーションで、range-based forを使う       2014. 4. 8.  
   ( 3) コンソールアプリケーションで、complexテンプレートクラスを使う 2014. 4.28  
  ( 4) コンソールアプリケーションで、generateとラムダ式を使う 2014. 5.20. 2014. 6. 1.
  ( 5) コンソールアプリケーションで、Stopwatchとchronoを使って、実行時間を測定する 2014.10.27.
  ( 6) Windowsフォームアプリケーションを始める 2014.11.21.



@niftyがカウンター機能の提供を中止しましたので、
2016.11.10の最後のカウンタを画像で表示します。
このカウンタは、これ以上増えることはありません。



RoomMaster's Voice(筆者の独り言)Facebookの一部を紹介しています

石立 喬のホームページへ戻る