سلام
من یه کد نوشتم که یه عکس میگیره و یه کد رنگ میگیره اگر رنگ پیکسل با کد رنگ یکی بود یه نقطه صفید و اگه نبود یه نقطه سیاه میزاره
یه چچنتا سوال درباره این کد داشتم اگه میشه جواب بدین
1.توی تابع که من از مرجع استفاده کرم چرا دوباره توی فراخوانیش باید از ستاره اسفاده کنم؟؟
2.توی خط
Mat_<uchar>::iterator result=res.begin<uchar>();
چرا از uchar استفاده کره و از Vec3b استفاده نرگده مثل توتا خط بالاش؟؟
Vec3b tc=(100,200,50);
int getd(const Vec3b&);
int main()
{
namedWindow("ex",0);
Mat img=imread("d:\\1.jpg");
Mat res;
int tol=200;
res.create(img.rows,img.cols,CV_8U);
Mat_<Vec3b>::const_iterator it=img.begin<Vec3b>();
Mat_<Vec3b>::const_iterator itend=img.end<Vec3b>();
Mat_<uchar>::iterator result=res.begin<uchar>();
for (; it<itend;it++,result++)
{
if(getd(*it)<tol)
{
*result=255;
}
else
*result=0;
}
imshow("ex",res);
waitKey();
}
int getd( const Vec3b &a)
{
return (
abs(a[0]-tc[0])+
abs(a[1]-tc[1])+
abs(a[2]-tc[2])) ;
}