注册 登录
编程论坛 C++教室

错误:未声明的标识符

落叶qiufeng 发布于 2016-03-08 18:51, 2645 次点击
#include<opencv2/opencv.hpp>
using namespace cv;

void main()
{
    s = cv::imread("1.jpg");
    CvScalar cvGet2D( const CvArr* arr, int idx0, int idx1 );
    CvScalar s;
  for(y = 0; y < img->height; y++) {
    for(x = 0; x < img->width; x++) {
      s = cvGet2D(img, y, x);
    }
    }
    }
如何将s,y,x,img进行声明
2 回复
#2
rjsp2016-03-09 09:22
C/C++不会、OpenCV不会 等等都不是什么大事
大事是  s = cv::imread("1.jpg");
  for(y = 0; y < img->height; y++)
中 img-> 是怎么来的?上面写的是s,下面却成了img->


程序代码:
#include <opencv2/opencv.hpp>
using namespace cv;

int main( void )
{
    cv::Mat img = cv::imread( "1.jpg" );
    if( !img.data || img.type()!=CV_8UC3 )
        return 1;

    for( int y=0; y!=img.rows; ++y )
    {
        for( int x=0; x!=img.cols; ++x )
        {
            Vec3b& s = img.at<Vec3b>(y,x);
            uchar& r = s[2];
            uchar& g = s[1];
            uchar& b = s[0];
        }
    }

    return 0;
}
#3
落叶qiufeng2016-03-09 09:58
回复 2楼 rjsp
受教了
1