diff --git a/samples/cpp/tutorial_code/ImgProc/BasicLinearTransforms.cpp b/samples/cpp/tutorial_code/ImgProc/BasicLinearTransforms.cpp
index dc7b849f42..d1db4954fc 100644
--- a/samples/cpp/tutorial_code/ImgProc/BasicLinearTransforms.cpp
+++ b/samples/cpp/tutorial_code/ImgProc/BasicLinearTransforms.cpp
@@ -30,6 +30,12 @@ int main( int argc, char** argv )
cout << "Usage: " << argv[0] << " " << endl;
return -1;
}
+ if (image.channels() != 3)
+ {
+ cout << "The tutorial expects 3 channel image as input!\n" << endl;
+ cout << "Usage: " << argv[0] << " " << endl;
+ return -1;
+ }
//! [basic-linear-transform-load]
//! [basic-linear-transform-output]
@@ -54,7 +60,7 @@ int main( int argc, char** argv )
//! [basic-linear-transform-operation]
for( int y = 0; y < image.rows; y++ ) {
for( int x = 0; x < image.cols; x++ ) {
- for( int c = 0; c < image.channels(); c++ ) {
+ for( int c = 0; c < 3; c++ ) {
new_image.at(y,x)[c] =
saturate_cast( alpha*image.at(y,x)[c] + beta );
}