新手求解答 error C2228: “.at”的左边必须有类/结构/联合 如何修改

guppfzhong95 2015-03-26 09:14:09
Vec3f point = mat.at<Vec3f>(y, x);这句话总是抱错 “.at”的左边必须有类/结构/联合 新手求解答


//鼠标响应
static void mouseHandler(int event, int x,int y ,int flags,void* Load)
{
IplImage *img0, *img1;
const Mat* mat;
load* tmpLoad=(load*)Load;
mat =(Mat *)tmpLoad->result3DImage;
img0 = (IplImage*)tmpLoad->img;
img1 = cvCloneImage(img0);
CvFont font, font2,font3;
uchar *ptr;
char label[1000];
char label2[1000];
char label3[1000];
cvInitFont (&font,CV_FONT_HERSHEY_PLAIN,1,1,0,1,1);
cvInitFont (&font2,CV_FONT_HERSHEY_PLAIN,1,1,0,1,1);
cvInitFont (&font3,CV_FONT_HERSHEY_PLAIN,1,1,0,1,1);
if(event==CV_EVENT_LBUTTONDOWN)
{
ptr = cvPtr2D(img1, y,x,NULL); //获取像素的灰度值
Vec3f point = mat.at<Vec3f>(y, x);
sprintf(label, "Color:(%d, %d, %d)",ptr[0], ptr[1], ptr[2]);
sprintf(label2, "Pixel:(%d, %d)", x, y); //获取坐标点位置
sprintf(label3, "3D:(%d, %d,%d)", x, y); //获取坐标点位置

cvRectangle(img1, cvPoint(x,y-12),cvPoint(x+180, y+20),
CV_RGB(255,0,0),CV_FILLED, 8,0);
cvPutText(img1,label,cvPoint(x,y),&font,CV_RGB(255,255,255) );
cvPutText(img1,label2,cvPoint(x,y+20),&font2,CV_RGB(255,255,255) );
cvPutText(img1,label3,cvPoint(x+20,y+20),&font3,CV_RGB(255,255,255) );
cvShowImage("src",img1);
}
}
...全文
791 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2015-03-26
  • 打赏
  • 举报
回复
A->B
等价于
(*A).B
michael2988 2015-03-26
  • 打赏
  • 举报
回复
mat 是指针啊 应该是 Vec3f point = mat->at<Vec3f>(y, x);

65,202

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧