本文整理汇总了C++中Mat::SizeObject方法的典型用法代码示例。如果您正苦于以下问题:C++ Mat::SizeObject方法的具体用法?C++ Mat::SizeObject怎么用?C++ Mat::SizeObject使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mat
的用法示例。
在下文中一共展示了Mat::SizeObject方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GraytoRGB
void ColorSpace::GraytoRGB (const Mat& gray, Mat& color)
{
if (gray.Channels()==3)
{
color.Create (gray, TRUE);
return;
}
if (gray.SizeObject() != color.SizeObject() || color.Channels()==3)
{
color.Release();
color.Create (gray.SizeObject(), (TYPE)CVLIB_MAKETYPE(gray.Type(), 3));
}
int nH = color.Rows(), nW = color.Cols();
int elemsize=CVLIB_ELEM_SIZE(gray.Type());
for (int i = 0; i < nH; i ++)
{
uchar* pcolor=color.data.ptr[i];
uchar* pgray=gray.data.ptr[i];
for (int k=0; k<nW; k++)
{
memcpy (&pcolor[3*k*elemsize], &pgray[k*elemsize], elemsize);
memcpy (&pcolor[(3*k+1)*elemsize], &pgray[k*elemsize], elemsize);
memcpy (&pcolor[(3*k+2)*elemsize], &pgray[k*elemsize], elemsize);
}
}
}
示例2: RGBtoHSV
void ColorSpace::RGBtoHSV (const Mat& src, Mat& dst)
{
dst.Create (src.SizeObject(), MAT_Tfloat3);
BYTE* pbyte = src.data.ptr[0];
float* pfloat = dst.data.fl[0];
int d=0;
for (int i=0; i<src.SizeObject().Area(); i++, d+=3)
RGBtoHSV(pbyte[d], pbyte[d+1], pbyte[d+2], &pfloat[d], &pfloat[d+1], &pfloat[d+2]);
}
示例3: Split
void ColorSpace::Split (const Mat& color, Mat& x, Mat& y, Mat& z)
{
x.Create (color.SizeObject(), color.Type());
y.Create (color.SizeObject(), color.Type());
z.Create (color.SizeObject(), color.Type());
int d=0;
int cn=color.Channels();
uchar* pcolor=color.data.ptr[0];
uchar* px=x.data.ptr[0];
uchar* py=y.data.ptr[0];
uchar* pz=z.data.ptr[0];
for (int i=0; i<color.SizeObject().Area(); i++, d+=cn)
{
px[i]=pcolor[d];
py[i]=pcolor[d+1];
pz[i]=pcolor[d+2];
}
}
示例4: RGBtoGray
void ColorSpace::RGBtoGray (const Mat& colorImg, Mat& mgray)
{
if (colorImg.Channels()==1)
{
mgray.Create (colorImg, TRUE);
return;
}
if (mgray.SizeObject() != colorImg.SizeObject() || mgray.Channels()==3)
{
mgray.Release();
mgray.Create (colorImg.SizeObject(), colorImg.Type());
}
int nH = colorImg.Rows(), nW = colorImg.Cols();
for (int i = 0; i < nH; i ++)
{
uchar* pcolor=colorImg.data.ptr[i];
uchar* pgray=mgray.data.ptr[i];
for (int j = 0, k=0; k<nW; j+=3, k++)
pgray[k] = (uchar)((299 * pcolor[j] + 587 * pcolor[j+1] + 114 * pcolor[j+2]) / 1000);
}
}