当前位置: 首页>>代码示例>>C++>>正文


C++ Mat::Create方法代码示例

本文整理汇总了C++中Mat::Create方法的典型用法代码示例。如果您正苦于以下问题:C++ Mat::Create方法的具体用法?C++ Mat::Create怎么用?C++ Mat::Create使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Mat的用法示例。


在下文中一共展示了Mat::Create方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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);
		}
	}
}
开发者ID:ArchieGoodwin,项目名称:OnTimeMed,代码行数:26,代码来源:ColorSpace.cpp

示例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]);
}
开发者ID:ArchieGoodwin,项目名称:OnTimeMed,代码行数:9,代码来源:ColorSpace.cpp

示例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];
	}
}
开发者ID:ArchieGoodwin,项目名称:OnTimeMed,代码行数:18,代码来源:ColorSpace.cpp

示例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);
	}
}
开发者ID:ArchieGoodwin,项目名称:OnTimeMed,代码行数:21,代码来源:ColorSpace.cpp

示例5: BGRAtoRGB

void ColorSpace::BGRAtoRGB(const Mat& color1, Mat& color2)
{
    color2.Create (color1.Rows(), color1.Cols(), MAT_TBYTE3);
	int d=0;
	uchar* psrc=color1.data.ptr[0];
	uchar* pdst=color2.data.ptr[0];
    int datalen=color1.Rows()*color1.Cols()*3;
	for (int i=0; i<datalen; i+=3, d+=4)
	{
		pdst[i]=psrc[d+2];
		pdst[i+1]=psrc[d+1];
		pdst[i+2]=psrc[d];
	}
}
开发者ID:ArchieGoodwin,项目名称:OnTimeMed,代码行数:14,代码来源:ColorSpace.cpp


注:本文中的Mat::Create方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。