質問: (%d,%d,%d)\n", GetRValue(clr), GetGValue(clr), GetBValue(clr)); cin >> exit;//なぜかキーを入力したら終了しますと表示されずに勝手に終了してしまうための対策用 return 0; } ``` 【参考】Yahoo知恵袋 ### 試したこと 処理の並列化をしたら少しは早くなるのでは?と思いやろうとしたのですがなぜかOpenMPを有効化にして、とりあえず動作確認でサンプルコードで動かしてみたのですが、”2フェーズの名前参照は、C++/CLI、C++/CX、OpenMP ではサポートされていません。/Zc:twoPhase- を使用します”と警告が出てきてったので諦めました...(このことについても質問したいのですが今回は大丈夫です。) ### 補足情報(FW/ツールのバージョンなど) VisualStuido2017,Windws10
回答: > > GetPixelのせいでたったそれだけを解析するのに五秒くらい時間がかかってしまいます。 > > (欲張った目標としては毎秒10000ピクセル程度の速度での解析、最低でも毎秒1500~3000ピクセル) > > > Windows API `GetPixel`関数によるRGB値アクセスは、ものすごく重たい処理です。代わりに `GetDIBits`関数 で自身が管理するメモリ領域上へとビットマップデータ展開し、通常のメモリアクセスとしてRGB値取得するのが最も効率的になります。(経験則からの推測ですが、変更後は目標速度を余裕で越えられると思います。) デバイスコンテキスト(HDC)からデバイス非依存ビットマップ(DIB)への変換は、下記ページなどを参考にください: * NKY-TECH. ソフトウェア開発部: DCからDIBを生成する * BMP 画像の扱いかた