画像の数字を分離することに興味があり、ROI を手動で指定したいと思います (あなたが書いたものを考えると)。
ROI のより良い座標を使用cv::Mat
して、それを新しいものにトリミングして、以下の出力のようなものを得ることができます。

この画像でしきい値を実行することは、後で認識を行うために数字を分離したい場合にのみ意味があります。これを行うための優れた手法はcv::inRange()
、すべてのチャネル (RGB イメージ == 3 チャネル) でしきい値操作を実行することによって提供されます。
注:cv::Mat
はピクセルを BGR の順序で格納します。これは、しきい値の値を指定するときに覚えておくことが重要です。
簡単なテストとして、 B:70 G:90 R:100 から B:140 G:140 R:140までのしきい値を実行して、次の出力を取得できます。

悪くない!これらの結果を得るために、コードを少し変更しました。
#include <cv.h>
#include <highgui.h>
#include <iostream>
int main()
{
cv::Mat image = cv::imread("input.jpg");
if (!image.data)
{
std::cout << "!!! imread failed to load image" << std::endl;
return -1;
}
cv::Rect roi;
roi.x = 165;
roi.y = 50;
roi.width = 440;
roi.height = 80;
/* Crop the original image to the defined ROI */
cv::Mat crop = image(roi);
cv::imwrite("colors_roi.png", crop);
/* Threshold the ROI based on a BGR color range to isolate yellow-ish colors */
cv::Mat dest;
cv::inRange(crop, cv::Scalar(70, 90, 100), cv::Scalar(140, 140, 140), dest);
cv::imwrite("colors_threshold.png", dest);
cv::imshow("Example", dest);
cv::waitKey();
return 0;
}