OpenCV (公式) https://opencv.org/
OpenCV逆引きリファレンス http://opencv.jp/cookbook/index.html
カラー画像をグレー画像に変換するプログラムを作成する.実行結果は下記となる.
下記,"lenna_inpaint_ns.png" を自分の適切なディレクトリに保存し,適切な保存先に保存する.この場合、プロジェクトフォルダの中に画像を入れるため,下記となる.
C:\(OpenCVプロジェクトを作成したフォルダ)\lenna_inpaint_ns.png
例 C:\Users\fukud\OneDrive\ドキュメント\opencv430\Project1\lenna_inpaint_ns.png
※パーミッションに注意.例えば、Cドライブの直下に置くと、パーミッションの関係で、画像が正しく配置され、プログラムが正しく書かれていても、読み込まれない。
// 01rgb2gray.cpp
#include <iostream>
#include <opencv2\opencv.hpp>
int main() {
cv::Mat gray;
cv::Mat im = cv::imread("lenna_inpaint_ns.png"); //カラー画像を取得
if (!im.data) return -1; //画像の取得に失敗した場合は、プログラムを終了させる
cv::cvtColor(im, gray, cv::COLOR_BGR2GRAY); //カラー画像をグレースケール変換 (H31~)
// cv::cvtColor(im, gray, CV_RGB2GRAY); //カラー画像をグレースケール変換 (~H30)
cv::imshow("Show image", gray); //グレースケール画像の表示
cv::waitKey(0); //任意のキーが押されたら表示を終了
return 0;
}
上記のコードを入力して,ビルドすると,下図のようなエラーが出る場合がある(OpenCV 4.3を使用したら筆者は出なくなった(OpenCVの古いバージョンでは出ていた))。
エラー内容を確認すると,logger.hに書かれた,fopen関数をfopen_s関数に変更する必要がある.
該当の行を表示し,
stream = fopen(name, "w");
を
fopen_s(&stream, name, "w");
に書き換える.元の記述は,コメントアウトしておく.
再度,ビルドすると,実行できる(はず).