画像の読み込み
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
imreadで画像をロード
#contents
*Mat cv::imread(String &filename, int flags); [#odb62250]
-OpenCV 2.0 から実装されたC++インタフェース
-OpenCV 3.0 より、 highguiモジュールからimgcodecモジュー...
**引数 [#tb5dec21]
-filename:String型のファイル名
-flags:int型のモード.カラーかグレースケールか.詳しくは...
**返り値 [#ed624959]
-ロードされたMat型のクラス
**解説 [#s8986e33]
-filenameは絶対パスでも相対パスでも可.
--JPEG、JPEG2000、BMP、TIFF、PNGなどに対応している
--ファイル先頭に記載されているバイナリヘッダで判定する
--インデックスカラー画像も通常の3チャンネルのカラー画像と...
--カラー画像は,各画素内で要素がBGRの順で並ぶ
-color_modeは以下のいずれか.ヘッダファイル内でenumとして...
--IMREAD_UNCHANGED (-1)
---1番安全.8bit画像として読み込む.カラーかグレーかはOpe...
--IMREAD_GRAYSCALE (0)
---グレースケール8bit画像として読み込む.カラー画像を読み...
--IMREAD_COLOR (1) (デフォルト)
---各画素のbit数は未指定.ただし3チャンネル(順序はBGR)で...
--IMREAD_ANYDEPTH (2)
---各画素のbit数は自動判別.画素のチャンネル数は未指定.
--IMREAD_ANYCOLOR (4)
---各画素のbit数は未指定.画像のチャンネル数は自動で判断...
--IMREAD_REDUCED_GRAYSCALE_2 (16)
--IMREAD_REDUCED_COLOR_2 (17)
--IMREAD_REDUCED_GRAYSCALE_4 (32)
--IMREAD_REDUCED_COLOR_4 (33)
--IMREAD_REDUCED_GRAYSCALE_8 (64)
--IMREAD_REDUCED_COLOR_8 (65)
---上記6つは画像を読み込んだ上で1/2、1/4、1/8のサイズにそ...
--以下のオプションはGDALライブラリが必要
--IMREAD_LOAD_GDAL (8)
---GDALドライバを使ってロード (only OpenCV 3.0 and later)
-Debug ModeではDebug ModeのLibrary,Release ModeではRelea...
*サンプルコード [#ccba9dc2]
**自動で読み込む場合 [#xef2ed44]
#geshi(c++){{
using namespace cv;
Mat input;
input = imread("./test.bmp", IMREAD_UNCHANGED );
//インデックスカラー形式のBMPは3チャンネルの画像に変換さ...
}}
**明示的にグレーにする場合 [#s9a4c1cd]
#geshi(c++){{
using namespace cv;
Mat input;
input = imread("./test.bmp", IMREAD_GRAYSCALE );
//これでカラー画像を読み込むと,グレースケール化される
}}
**明示的にカラーで読み込む場合 [#qf20a381]
#geshi(c++){{
using namespace cv;
Mat input;
input = imread("./test.bmp", IMREAD_COLOR );
//これでグレースケール画像を読み込むと,RGBに同じ値が入っ...
}}
**その他 [#u3e81f43]
-どうもflags引数はbit演算のようで,下記のように足し算で使...
#geshi(c++){{
cv::imread("./test.bmp", IMREAD_COLOR+IMREAD_ANYDEPTH );
}}
-IMREAD_LOAD_GDALを指定しても、GDALライブラリがなければ、...
**グレースケールとカラー画像をそれぞれのオプションで読み...
#geshi(c++){{
#include <opencv2/imgcodecs.hpp>
#include <opencv2/core.hpp>
#include <iostream>
const char filename_lena[] = "file/path/to/color/image"; ...
const char filename_gray[] = "file/path/to/gray/image"; ...
const char optionNameDefault[] = "default ";
const int options[] = {
cv::IMREAD_UNCHANGED,
cv::IMREAD_GRAYSCALE,
cv::IMREAD_COLOR,
cv::IMREAD_ANYDEPTH,
cv::IMREAD_ANYCOLOR,
};
const char *optionNames[] = {
"IMREAD_UNCHANGED",
"IMREAD_GRAYSCALE",
"IMREAD_COLOR ",
"IMREAD_ANYDEPTH ",
"IMREAD_ANYCOLOR ",
'\0',
};
const char *typeNames[] = {
"CV_8U ",
"CV_8S ",
"CV_16U",
"CV_16S",
"CV_32S",
"CV_32F",
"CV_64F",
};
void dumpImageFormatInformation(cv::Mat& image, const cha...
{
std::cout << "== option " << option << " == ";
std::cout << "width:" << image.cols << ' ';
std::cout << "height:" << image.rows << ' ';
std::cout << "steps:" << image.step << '\t';
std::cout << "channel:" << CV_MAT_CN(image.flags) << '...
std::cout << "type:" << typeNames[CV_MAT_DEPTH(imag...
}
int main()
{
using namespace cv;
std::cout << "== Color image ==" << std::endl;
Mat inputLena;
inputLena = imread(filename_lena);
dumpImageFormatInformation(inputLena, optionNameDefault);
int index = 0;
while(optionNames[index] != '\0')
{
inputLena = imread(filename_lena, options[index]);
dumpImageFormatInformation(inputLena, optionNames[index...
index++;
}
std::cout << std::endl;
std::cout << "== Gray image ==" << std::endl;
Mat inputGray;
inputGray = imread(filename_gray);
dumpImageFormatInformation(inputGray, optionNameDefault);
index = 0;
while(optionNames[index] != '\0')
{
inputGray = imread(filename_gray, options[index]);
dumpImageFormatInformation(inputGray, optionNames[index...
index++;
}
}
}}
-実行結果
== Color image ==
== option default == width:512 height:512 steps...
== option IMREAD_UNCHANGED == width:512 height:512 steps...
== option IMREAD_GRAYSCALE == width:512 height:512 steps...
== option IMREAD_COLOR == width:512 height:512 steps...
== option IMREAD_ANYDEPTH == width:512 height:512 steps...
== option IMREAD_ANYCOLOR == width:512 height:512 steps...
== Gray image ==
== option default == width:512 height:512 steps...
== option IMREAD_UNCHANGED == width:512 height:512 steps...
== option IMREAD_GRAYSCALE == width:512 height:512 steps...
== option IMREAD_COLOR == width:512 height:512 steps...
== option IMREAD_ANYDEPTH == width:512 height:512 steps...
== option IMREAD_ANYCOLOR == width:512 height:512 steps...
-IMREAD_COLOR と defaultの挙動は常に同じ
-IMREAD_UNCHANGED と IMREAD_ANYCOLOR の時、読み込む画像に...
*実体ファイル [#ida7c56e]
**OpenCV 2.4系列 [#qb0ec3e8]
-highgui/include/opencv2/highgui/highgui.hpp
-highgui/src/loadsave.cpp
**OpenCV 3.0系列 [#dc8e5bb4]
-imgcodecs/include/opencv2/imgcodecs.hpp
-imgcodecs/src/loadsave.cpp
[[:OpenCV]][[:OpenCV 2.4]][[:OpenCV 3.0]][[:OpenCV 3.1]]...
終了行:
imreadで画像をロード
#contents
*Mat cv::imread(String &filename, int flags); [#odb62250]
-OpenCV 2.0 から実装されたC++インタフェース
-OpenCV 3.0 より、 highguiモジュールからimgcodecモジュー...
**引数 [#tb5dec21]
-filename:String型のファイル名
-flags:int型のモード.カラーかグレースケールか.詳しくは...
**返り値 [#ed624959]
-ロードされたMat型のクラス
**解説 [#s8986e33]
-filenameは絶対パスでも相対パスでも可.
--JPEG、JPEG2000、BMP、TIFF、PNGなどに対応している
--ファイル先頭に記載されているバイナリヘッダで判定する
--インデックスカラー画像も通常の3チャンネルのカラー画像と...
--カラー画像は,各画素内で要素がBGRの順で並ぶ
-color_modeは以下のいずれか.ヘッダファイル内でenumとして...
--IMREAD_UNCHANGED (-1)
---1番安全.8bit画像として読み込む.カラーかグレーかはOpe...
--IMREAD_GRAYSCALE (0)
---グレースケール8bit画像として読み込む.カラー画像を読み...
--IMREAD_COLOR (1) (デフォルト)
---各画素のbit数は未指定.ただし3チャンネル(順序はBGR)で...
--IMREAD_ANYDEPTH (2)
---各画素のbit数は自動判別.画素のチャンネル数は未指定.
--IMREAD_ANYCOLOR (4)
---各画素のbit数は未指定.画像のチャンネル数は自動で判断...
--IMREAD_REDUCED_GRAYSCALE_2 (16)
--IMREAD_REDUCED_COLOR_2 (17)
--IMREAD_REDUCED_GRAYSCALE_4 (32)
--IMREAD_REDUCED_COLOR_4 (33)
--IMREAD_REDUCED_GRAYSCALE_8 (64)
--IMREAD_REDUCED_COLOR_8 (65)
---上記6つは画像を読み込んだ上で1/2、1/4、1/8のサイズにそ...
--以下のオプションはGDALライブラリが必要
--IMREAD_LOAD_GDAL (8)
---GDALドライバを使ってロード (only OpenCV 3.0 and later)
-Debug ModeではDebug ModeのLibrary,Release ModeではRelea...
*サンプルコード [#ccba9dc2]
**自動で読み込む場合 [#xef2ed44]
#geshi(c++){{
using namespace cv;
Mat input;
input = imread("./test.bmp", IMREAD_UNCHANGED );
//インデックスカラー形式のBMPは3チャンネルの画像に変換さ...
}}
**明示的にグレーにする場合 [#s9a4c1cd]
#geshi(c++){{
using namespace cv;
Mat input;
input = imread("./test.bmp", IMREAD_GRAYSCALE );
//これでカラー画像を読み込むと,グレースケール化される
}}
**明示的にカラーで読み込む場合 [#qf20a381]
#geshi(c++){{
using namespace cv;
Mat input;
input = imread("./test.bmp", IMREAD_COLOR );
//これでグレースケール画像を読み込むと,RGBに同じ値が入っ...
}}
**その他 [#u3e81f43]
-どうもflags引数はbit演算のようで,下記のように足し算で使...
#geshi(c++){{
cv::imread("./test.bmp", IMREAD_COLOR+IMREAD_ANYDEPTH );
}}
-IMREAD_LOAD_GDALを指定しても、GDALライブラリがなければ、...
**グレースケールとカラー画像をそれぞれのオプションで読み...
#geshi(c++){{
#include <opencv2/imgcodecs.hpp>
#include <opencv2/core.hpp>
#include <iostream>
const char filename_lena[] = "file/path/to/color/image"; ...
const char filename_gray[] = "file/path/to/gray/image"; ...
const char optionNameDefault[] = "default ";
const int options[] = {
cv::IMREAD_UNCHANGED,
cv::IMREAD_GRAYSCALE,
cv::IMREAD_COLOR,
cv::IMREAD_ANYDEPTH,
cv::IMREAD_ANYCOLOR,
};
const char *optionNames[] = {
"IMREAD_UNCHANGED",
"IMREAD_GRAYSCALE",
"IMREAD_COLOR ",
"IMREAD_ANYDEPTH ",
"IMREAD_ANYCOLOR ",
'\0',
};
const char *typeNames[] = {
"CV_8U ",
"CV_8S ",
"CV_16U",
"CV_16S",
"CV_32S",
"CV_32F",
"CV_64F",
};
void dumpImageFormatInformation(cv::Mat& image, const cha...
{
std::cout << "== option " << option << " == ";
std::cout << "width:" << image.cols << ' ';
std::cout << "height:" << image.rows << ' ';
std::cout << "steps:" << image.step << '\t';
std::cout << "channel:" << CV_MAT_CN(image.flags) << '...
std::cout << "type:" << typeNames[CV_MAT_DEPTH(imag...
}
int main()
{
using namespace cv;
std::cout << "== Color image ==" << std::endl;
Mat inputLena;
inputLena = imread(filename_lena);
dumpImageFormatInformation(inputLena, optionNameDefault);
int index = 0;
while(optionNames[index] != '\0')
{
inputLena = imread(filename_lena, options[index]);
dumpImageFormatInformation(inputLena, optionNames[index...
index++;
}
std::cout << std::endl;
std::cout << "== Gray image ==" << std::endl;
Mat inputGray;
inputGray = imread(filename_gray);
dumpImageFormatInformation(inputGray, optionNameDefault);
index = 0;
while(optionNames[index] != '\0')
{
inputGray = imread(filename_gray, options[index]);
dumpImageFormatInformation(inputGray, optionNames[index...
index++;
}
}
}}
-実行結果
== Color image ==
== option default == width:512 height:512 steps...
== option IMREAD_UNCHANGED == width:512 height:512 steps...
== option IMREAD_GRAYSCALE == width:512 height:512 steps...
== option IMREAD_COLOR == width:512 height:512 steps...
== option IMREAD_ANYDEPTH == width:512 height:512 steps...
== option IMREAD_ANYCOLOR == width:512 height:512 steps...
== Gray image ==
== option default == width:512 height:512 steps...
== option IMREAD_UNCHANGED == width:512 height:512 steps...
== option IMREAD_GRAYSCALE == width:512 height:512 steps...
== option IMREAD_COLOR == width:512 height:512 steps...
== option IMREAD_ANYDEPTH == width:512 height:512 steps...
== option IMREAD_ANYCOLOR == width:512 height:512 steps...
-IMREAD_COLOR と defaultの挙動は常に同じ
-IMREAD_UNCHANGED と IMREAD_ANYCOLOR の時、読み込む画像に...
*実体ファイル [#ida7c56e]
**OpenCV 2.4系列 [#qb0ec3e8]
-highgui/include/opencv2/highgui/highgui.hpp
-highgui/src/loadsave.cpp
**OpenCV 3.0系列 [#dc8e5bb4]
-imgcodecs/include/opencv2/imgcodecs.hpp
-imgcodecs/src/loadsave.cpp
[[:OpenCV]][[:OpenCV 2.4]][[:OpenCV 3.0]][[:OpenCV 3.1]]...
ページ名: