Функция countNonZero выдает ошибку утверждения в openCV

Я попытался получить горизонтальную проекцию, используя функцию countNonZero (), как показано ниже.

Mat src = imread(INPUT_FILE, CV_LOAD_IMAGE_COLOR);
Mat binaryImage = src.clone();
cvtColor(src, src, CV_BGR2GRAY);

Mat horizontal = Mat::zeros(1,binaryImage.cols, CV_8UC1);

for (int i = 0; i<binaryImage.cols; i++)
{
    Mat roi = binaryImage(Rect(0, 0, 1, binaryImage.rows));

    horizontal.at<int>(0,i) = countNonZero(roi);
    cout << "Col no:" << i << " >>" << horizontal.at<int>(0, i);
}

Но в строке вызова функции countonZero () произошла ошибка. Ошибка заключается в следующем.

    OpenCV Error: Assertion failed (src.channels() == 1 && func != 0) in cv::countNo
    nZero, file C:\builds\2_4_PackSlave-win32-vc12-shared\opencv\modules\core\src\st
    at.cpp, line 549

Может кто-нибудь указать на ошибку?

Ответы на вопрос(2)

Ваш ответ на вопрос