画像の2値化
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
threshold関数でさまざまなしきい値処理
#contents
*double threshold( InputArray src, OutputArray dst, doubl...
-typeで指定された方法によりthresholdでしきい値処理をする
**引数 [#xefbc6fd]
-src:Mat型の画像。
-dst:Mat型の出力画像。
-thresh:double型のしきい値
-maxval:double型の明度値
-type:int型のしきい値処理方法。実際はcv::ThresholdTypesを...
**返り値 [#kf3e4949]
-double型のしきい値
*解説 [#o505e5c1]
-doubleのしきい値は、通常パラメータのthreshとして渡した値...
--THRESH_OTSUかTHRESH_TRIANGLEを指定した時だけ、推定され...
-typeでさまざまなしきい値処理をできる
--THRESH_BINARY(0) 通常のしきい値処理
--THRESH_BINARY_INV(1) 通常のしきい値処理の逆(high→0、low...
--THRESH_TRUNC(2) しきい値以上の値をしきい値に丸める
--THRESH_TOZERO(3) しきい値以下を0にする
--THRESH_TOZERO_INV(4) しきい値以上の値を0に丸める
--THRESH_OTSU(8) しきい値をOTSUの方式(判別分析法)で求める
--THRESH_TRIANGLE(16):TBW。要OpenCV3.0以降
--THRESH_MASK(7):内部で、使用されるenumで、パラメータとし...
-しきい値より大きいかがポイント.しきい値はlowにカウント...
-画像のタイプはfloat型でも可なので,しきい値もdoubleである
-THRESH_OTSUかTHRESH_TRIANGLEを指定した場合は、グレースケ...
-それ以外の場合は8U、16Sか32F。unsigned char、signed shor...
*サンプルコード [#r557db3f]
#geshi(c++){{
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/imgcodecs/imgcodecs.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
const char filename[] = "path/to/opencv/samples/data/pi...
const char windowName[] = "Threshold";
const double kThreshold = 100;
const double kHigh = 255;
int main(int argc, char**argv)
{
using namespace cv;
Mat input = imread(filename, IMREAD_GRAYSCALE);
namedWindow(windowName);
imshow(windowName, input);
waitKey(0);
Mat result;
// try various thresholding type
threshold(input, result, kThreshold, kHigh, THRESH_BINAR...
threshold(input, result, kThreshold, kHigh, THRESH_BINAR...
threshold(input, result, kThreshold, kHigh, THRESH_TRUNC...
threshold(input, result, kThreshold, kHigh, THRESH_TOZER...
threshold(input, result, kThreshold, kHigh, THRESH_TOZER...
double estimatedTh = 0.f;
// try automatic threshold
// try OTSU method
estimatedTh = threshold(input, result, 0, kHigh, THRESH_...
std::cout << "OTSU threshold :" << estimatedTh << std...
// try OTSU method
estimatedTh = threshold(input, result, 0, kHigh, THRESH_...
std::cout << "TRIANGLE threshold:" << estimatedTh << std...
return 0;
}
}}
*実行結果 [#e56beece]
-各種しきい値処理の結果
-固定しきい値は100でしきい値処理。maxvalは255(白)にした各...
--通常のしきい値処理(THRESH_BINARY)
#ref(result0000.png)
--通常のしきい値処理の反転(THRESH_BINARY_INV)
#ref(result0001.png)
--しきい値以上をしきい値に丸め込む(THRESH_TRUNC)
#ref(result0002.png)
--しきい値以下を0にする(THRESH_TOZERO)
#ref(result0003.png)
--しきい値以下を0にする(THRESH_TOZERO_INV)
#ref(result0004.png)
--Otsuの手法(判別分析法)
--しきい値は85
#ref(result0005.png)
--TRIANGLE
--しきい値は126
#ref(result0006.png)
*実体ファイル [#ga00de3c]
-OpenCV 3.0系列
--modules/imgproc/include/opencv2/imgproc.hpp
--modules/imgproc/src/thresh.cpp
-OpenCV 2.4系列
--modules/imgproc/include/opencv2/imgproc.hpp
--modules/imgproc/src/thresh.cpp
ジャンル[[:OpenCV]][[:OpenCV 2.4]][[:OpenCV 3.0]][[:OpenC...
終了行:
threshold関数でさまざまなしきい値処理
#contents
*double threshold( InputArray src, OutputArray dst, doubl...
-typeで指定された方法によりthresholdでしきい値処理をする
**引数 [#xefbc6fd]
-src:Mat型の画像。
-dst:Mat型の出力画像。
-thresh:double型のしきい値
-maxval:double型の明度値
-type:int型のしきい値処理方法。実際はcv::ThresholdTypesを...
**返り値 [#kf3e4949]
-double型のしきい値
*解説 [#o505e5c1]
-doubleのしきい値は、通常パラメータのthreshとして渡した値...
--THRESH_OTSUかTHRESH_TRIANGLEを指定した時だけ、推定され...
-typeでさまざまなしきい値処理をできる
--THRESH_BINARY(0) 通常のしきい値処理
--THRESH_BINARY_INV(1) 通常のしきい値処理の逆(high→0、low...
--THRESH_TRUNC(2) しきい値以上の値をしきい値に丸める
--THRESH_TOZERO(3) しきい値以下を0にする
--THRESH_TOZERO_INV(4) しきい値以上の値を0に丸める
--THRESH_OTSU(8) しきい値をOTSUの方式(判別分析法)で求める
--THRESH_TRIANGLE(16):TBW。要OpenCV3.0以降
--THRESH_MASK(7):内部で、使用されるenumで、パラメータとし...
-しきい値より大きいかがポイント.しきい値はlowにカウント...
-画像のタイプはfloat型でも可なので,しきい値もdoubleである
-THRESH_OTSUかTHRESH_TRIANGLEを指定した場合は、グレースケ...
-それ以外の場合は8U、16Sか32F。unsigned char、signed shor...
*サンプルコード [#r557db3f]
#geshi(c++){{
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/imgcodecs/imgcodecs.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
const char filename[] = "path/to/opencv/samples/data/pi...
const char windowName[] = "Threshold";
const double kThreshold = 100;
const double kHigh = 255;
int main(int argc, char**argv)
{
using namespace cv;
Mat input = imread(filename, IMREAD_GRAYSCALE);
namedWindow(windowName);
imshow(windowName, input);
waitKey(0);
Mat result;
// try various thresholding type
threshold(input, result, kThreshold, kHigh, THRESH_BINAR...
threshold(input, result, kThreshold, kHigh, THRESH_BINAR...
threshold(input, result, kThreshold, kHigh, THRESH_TRUNC...
threshold(input, result, kThreshold, kHigh, THRESH_TOZER...
threshold(input, result, kThreshold, kHigh, THRESH_TOZER...
double estimatedTh = 0.f;
// try automatic threshold
// try OTSU method
estimatedTh = threshold(input, result, 0, kHigh, THRESH_...
std::cout << "OTSU threshold :" << estimatedTh << std...
// try OTSU method
estimatedTh = threshold(input, result, 0, kHigh, THRESH_...
std::cout << "TRIANGLE threshold:" << estimatedTh << std...
return 0;
}
}}
*実行結果 [#e56beece]
-各種しきい値処理の結果
-固定しきい値は100でしきい値処理。maxvalは255(白)にした各...
--通常のしきい値処理(THRESH_BINARY)
#ref(result0000.png)
--通常のしきい値処理の反転(THRESH_BINARY_INV)
#ref(result0001.png)
--しきい値以上をしきい値に丸め込む(THRESH_TRUNC)
#ref(result0002.png)
--しきい値以下を0にする(THRESH_TOZERO)
#ref(result0003.png)
--しきい値以下を0にする(THRESH_TOZERO_INV)
#ref(result0004.png)
--Otsuの手法(判別分析法)
--しきい値は85
#ref(result0005.png)
--TRIANGLE
--しきい値は126
#ref(result0006.png)
*実体ファイル [#ga00de3c]
-OpenCV 3.0系列
--modules/imgproc/include/opencv2/imgproc.hpp
--modules/imgproc/src/thresh.cpp
-OpenCV 2.4系列
--modules/imgproc/include/opencv2/imgproc.hpp
--modules/imgproc/src/thresh.cpp
ジャンル[[:OpenCV]][[:OpenCV 2.4]][[:OpenCV 3.0]][[:OpenC...
ページ名: