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


C++ cvMerge函数代码示例

本文整理汇总了C++中cvMerge函数的典型用法代码示例。如果您正苦于以下问题:C++ cvMerge函数的具体用法?C++ cvMerge怎么用?C++ cvMerge使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了cvMerge函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: gst_retinex_transform_ip

static GstFlowReturn gst_retinex_transform_ip(GstBaseTransform * btrans, GstBuffer * gstbuf) 
{
  GstRetinex *retinex = GST_RETINEX (btrans);

  GST_RETINEX_LOCK (retinex);

  //////////////////////////////////////////////////////////////////////////////
  // get image data from the input, which is RGBA or BGRA
  retinex->pFrame->imageData = (char*)GST_BUFFER_DATA(gstbuf);
  cvSplit(retinex->pFrame, 
          retinex->ch1, retinex->ch2, retinex->ch3, NULL        );
  cvMerge(retinex->ch1, retinex->ch2, retinex->ch3, NULL, 
          retinex->pFrame2);

  double sigma = 14.0;
  int gain = 128;
  int offset = 128;
  Retinex( retinex->pFrame2, sigma, gain, offset );
  cvSplit(retinex->pFrame2,  retinex->ch1, retinex->ch2, retinex->ch3, NULL);

  //////////////////////////////////////////////////////////////////////////////
  // restore alpha channel from input
  cvMerge(retinex->ch1, retinex->ch2, retinex->ch3, retinex->pFrameA, 
          retinex->pFrame);
  

  GST_RETINEX_UNLOCK (retinex);  
  
  return GST_FLOW_OK;
}
开发者ID:miguelao,项目名称:gst_plugins_tsunami,代码行数:30,代码来源:gstretinex.c

示例2: colorizeWinter

// Shade a grayscale image using the "winter" colormap (similar to Matlab's). 
void colorizeWinter(IplImage* src, IplImage*& dst, IplImage* mask){

	// Create an increasing linear-ramp in the green channel.
	cvMerge(NULL, src, NULL, NULL, dst);

	// Create a decreasing linear-ramp in the blue channel.
	IplImage* blue = cvCloneImage(src);
	cvSubRS(src, cvScalar(255.0), blue, mask);
	cvMerge(blue, NULL, NULL, NULL, dst);
	
	// Release allocated resources.
	cvReleaseImage(&blue);
}
开发者ID:Pacmanfan,项目名称:MultiScan,代码行数:14,代码来源:cvUtilProCam.cpp

示例3: cvCreateImage

void BModel::wiener_filter(const int r, const double sigma, const double S)
{
    IplImage *reKernel = cvCreateImage(cvGetSize(_tempImageSrc), IPL_DEPTH_64F, 1);
    IplImage *image = cvCreateImage(cvGetSize(_tempImageSrc), IPL_DEPTH_64F, 4);
    IplImage *reRImage = cvCreateImage(cvGetSize(_tempImageSrc), IPL_DEPTH_64F, 1);
    IplImage *reGImage = cvCreateImage(cvGetSize(_tempImageSrc), IPL_DEPTH_64F, 1);
    IplImage *reBImage = cvCreateImage(cvGetSize(_tempImageSrc), IPL_DEPTH_64F, 1);

    IplImage *kernel = cvCreateImage(cvGetSize(_tempImageSrc), IPL_DEPTH_64F, 2);
    IplImage *rImage = cvCreateImage(cvGetSize(_tempImageSrc), IPL_DEPTH_64F, 2);
    IplImage *gImage = cvCreateImage(cvGetSize(_tempImageSrc), IPL_DEPTH_64F, 2);
    IplImage *bImage = cvCreateImage(cvGetSize(_tempImageSrc), IPL_DEPTH_64F, 2);

    IplImage *imaginary = cvCreateImage(cvGetSize(_tempImageSrc), IPL_DEPTH_64F, 1);

    cvZero(imaginary);
    cvZero(reKernel);
    create_kernel(r, sigma, reKernel);
    cvConvertScale(_tempImageSrc, image, 1/255.);
    cvSplit(image, reRImage, reGImage, reBImage, 0);

    cvMerge(reKernel, imaginary, 0, 0, kernel);
    cvMerge(reRImage, imaginary, 0, 0, rImage);
    cvMerge(reGImage, imaginary, 0, 0, gImage);
    cvMerge(reBImage, imaginary, 0, 0, bImage);

    wiener_filter_chanel(rImage, kernel, S);
    cvSplit(rImage, reRImage, imaginary, 0, 0);
    wiener_filter_chanel(gImage, kernel, S);
    cvSplit(gImage, reGImage, imaginary, 0, 0);
    wiener_filter_chanel(bImage, kernel, S);
    cvSplit(bImage, reBImage, imaginary, 0, 0);

    cvMerge(reRImage, reGImage, reBImage, 0, image);
    cvConvertScale(image, _tempImageDst, 255);
    remap_image(_tempImageDst, -r);
    change_filt_image();
    create_temp_image(_srcImage);

    cvReleaseImage(&reKernel);
    cvReleaseImage(&image);
    cvReleaseImage(&reRImage);
    cvReleaseImage(&reGImage);
    cvReleaseImage(&reBImage);
    cvReleaseImage(&kernel);
    cvReleaseImage(&rImage);
    cvReleaseImage(&gImage);
    cvReleaseImage(&bImage);
    cvReleaseImage(&imaginary);
}
开发者ID:grafin,项目名称:Diplom,代码行数:50,代码来源:bmodel.cpp

示例4: adjustHSV

void adjustHSV(IplImage *&src, int HuePosition, int SaturationPosition, int ValuePosition)
{
	int Hue = HuePosition;
	double Saturation = SaturationPosition * 2.55;
	double Value = ValuePosition / 100.;

	//create float image
	IplImage *temp = cvCreateImage(cvGetSize(src), IPL_DEPTH_32F, src->nChannels);
	cvConvertScale(src, temp, 1.0/255.0, 0);
	//split 
	IplImage* floatingH = cvCreateImage( cvGetSize(src), IPL_DEPTH_32F, 1 );
	IplImage* floatingS = cvCreateImage( cvGetSize(src), IPL_DEPTH_32F, 1 );
	IplImage* floatingV = cvCreateImage( cvGetSize(src), IPL_DEPTH_32F, 1 );
	cvCvtColor(temp, temp, CV_BGR2HSV);//color convert
	cvSplit( temp, floatingH, floatingS, floatingV, NULL);

	//adjust
	cvAddS(floatingH, cvScalarAll(Hue), floatingH);
	cvAddS(floatingV, cvScalarAll(Value), floatingV);

	//merge
	cvZero(temp);
	cvMerge(floatingH, floatingS, floatingV, NULL, temp);
	cvCvtColor(temp, temp, CV_HSV2BGR);

	//save
	cvConvertScale( temp, src, 255, 0 );

	IplImage *HSV = convertImageRGBtoHSV(src);
	IplImage *H = cvCreateImage(cvGetSize(src), src->depth, 1);
	IplImage *S = cvCreateImage(cvGetSize(src), src->depth, 1);
	IplImage *V = cvCreateImage(cvGetSize(src), src->depth, 1);

	cvSplit(HSV, H, S, V, 0);
	cvAddS(S, cvScalarAll(Saturation), S);

	cvMerge(H, S, V, 0, HSV);

	cvReleaseImage(&src);
	src = convertImageHSVtoRGB(HSV);

	cvReleaseImage(&HSV);
	cvReleaseImage(&H);
	cvReleaseImage(&S);
	cvReleaseImage(&V);
	cvReleaseImage(&temp);
	cvReleaseImage(&floatingH);
	cvReleaseImage(&floatingS);
	cvReleaseImage(&floatingV);
}//end HSV
开发者ID:QbsuranAlang,项目名称:InstaFilter,代码行数:50,代码来源:Customize.cpp

示例5: crop

IplImage* crop(IplImage* src, CvPoint c, int r){
	IplImage* res, * roi;
 
    //src = cvLoadImage("x.jpg", 1);
    res = cvCreateImage(cvGetSize(src), 8, 3);
    roi = cvCreateImage(cvGetSize(src), 8, 1);
 
    /* prepare the 'ROI' image */
    cvZero(roi);
 
    /* Note that you can use any shape for the ROI */
    cvCircle(
        roi,
        c,
        r,
        CV_RGB(255, 255, 255),
        -1, 8, 0
    );
 
    /* extract subimage */
    cvAnd(src, src, res, roi);
 
 
    /* 'restore' subimage */
    IplImage* roi_C3 = cvCreateImage(cvGetSize(src), 8, 3);
    cvMerge(roi, roi, roi, NULL, roi_C3);
    cvAnd(res, roi_C3, res, NULL);
 
    return res;
 
   
}
开发者ID:dsatiate,项目名称:Facial-feature-tracking-OpenCv,代码行数:32,代码来源:main.cpp

示例6: equalize_image

void equalize_image(IplImage *img)
{
	IplImage *b = NULL;
	IplImage *g = NULL;
	IplImage *r = NULL;

	if (img->nChannels == 1)
	{
		cvEqualizeHist(img, img);
	}
	else if (img->nChannels == 3)
	{
		b = cvCreateImage(cvGetSize(img), 8, 1);
		g = cvCreateImage(cvGetSize(img), 8, 1);
		r = cvCreateImage(cvGetSize(img), 8, 1);

		cvSplit(img, b, g, r, NULL);

		cvEqualizeHist(b,b);
		cvEqualizeHist(g,g);
		cvEqualizeHist(r,r);

		cvMerge(b,g,r,NULL,img);

		cvReleaseImage(&b);
		cvReleaseImage(&g);
		cvReleaseImage(&r);
	}
}
开发者ID:ulyssesrr,项目名称:carmen_lcad,代码行数:29,代码来源:visual_memory_filters.c

示例7: YUV_read

enum YUV_ReturnValue
	YUV_read(struct YUV_Capture *cap)
{
		size_t bytes_read;
		size_t npixels;

		npixels = cap->width*cap->height;
		bytes_read = fread(cap->y->imageData, sizeof(uint8_t), npixels, cap->fin);
		if (bytes_read == 0)
			return YUV_EOF;
		else if (bytes_read != npixels)
			return YUV_IO_ERROR;
		bytes_read = fread(cap->cb_half->imageData, sizeof(uint8_t), npixels / 4, cap->fin);
		if (bytes_read != npixels / 4)
			return YUV_IO_ERROR;

		bytes_read = fread(cap->cr_half->imageData, sizeof(uint8_t), npixels / 4, cap->fin);
		if (bytes_read != npixels / 4)
			return YUV_IO_ERROR;

		cvResize(cap->cb_half, cap->cb, CV_INTER_CUBIC);
		cvResize(cap->cr_half, cap->cr, CV_INTER_CUBIC);
		cvMerge(cap->y, cap->cr, cap->cb, NULL, cap->ycrcb);

		return YUV_OK;
	}
开发者ID:JepsonLin,项目名称:GlobalMotionEstimationProject,代码行数:26,代码来源:yuv.cpp

示例8: draw

void draw(int dummy)
{
	//delaunay
	cvClearMemStorage(storage);
	subdiv=cvCreateSubdivDelaunay2D(rect,trianglestore);

	blur(origV, out);
	SWAP(in,out);
	thresh(in, out);
	findContours(out, storage, &contours);

	cvMerge(origH, origS, out, NULL, temp);
	cvCvtColor( temp, temp, CV_HSV2RGB );

	every_contour(contours, temp);
	drawContour(temp, contours);
	SWAP(in,out);

	draw_subdiv(temp,subdiv, cvScalar(255,255,255,255));
		if(k==0)
		{
		cvNot(in,out);
		//k=1;
		}
		else{}
	cvClearMemStorage(trianglestore);
	//findcorners(origH,out);   //needs 32bit float image

	cvShowImage(OUT, temp);
}
开发者ID:ntavish,项目名称:tri,代码行数:30,代码来源:main.c

示例9: customizeImage

bool _stdcall customizeImage(LPWSTR csInputPath, LPWSTR csOutputPath, int *values, bool isGray)
{
	char inputPath[SIZE] = "";
	WideCharToMultiByte(950, 0, csInputPath, -1, inputPath, SIZE, NULL, NULL);//wchar_t * to char
	char outputPath[SIZE] = "";
	WideCharToMultiByte(950, 0, csOutputPath, -1, outputPath, SIZE, NULL, NULL);//wchar_t * to char *

	IplImage *img = cvLoadImage(inputPath, 1);

	if(!img)
		return false;
	else
	{
		if(isGray)
		{
			IplImage *gray = cvCreateImage(cvGetSize(img), img->depth, 1);
			cvCvtColor(img, gray, CV_BGR2GRAY);
			cvMerge(gray, gray, gray, 0, img);
			cvReleaseImage(&gray);
		}//end if

		adjustRGB(img, values[0], values[1], values[2]);
		adjustHSV(img, values[3], values[4], values[5]);
		adjustBrightnessContrast(img, values[6], values[7]);

		cvSaveImage(outputPath, img);
		cvReleaseImage(&img);

		return true;
	}//end else

	return false;
}//end combineImage
开发者ID:QbsuranAlang,项目名称:InstaFilter,代码行数:33,代码来源:Customize.cpp

示例10: ocv_histogramac1

IplImage *ocv_histogramac(IplImage *image) {
	if (!image) { present(1, "!image"); return NULL; }

	IplImage *iplImageOut = NULL;
	if (image->nChannels == 1) {
		iplImageOut = ocv_histogramac1(image);
	} else if (image->nChannels == 3) {
		IplImage *iplImgIR = cvCreateImage(cvGetSize(image), IPL_DEPTH_8U, 1);
		IplImage *iplImgIG = cvCreateImage(cvGetSize(image), IPL_DEPTH_8U, 1);
		IplImage *iplImgIB = cvCreateImage(cvGetSize(image), IPL_DEPTH_8U, 1);
		cvSplit(image, iplImgIR, iplImgIG, iplImgIB, NULL);

		IplImage *iplImgOR = ocv_histogramac1(iplImgIR);
		IplImage *iplImgOG = ocv_histogramac1(iplImgIG);
		IplImage *iplImgOB = ocv_histogramac1(iplImgIB);
		cvReleaseImage(&iplImgIR);
		cvReleaseImage(&iplImgIG);
		cvReleaseImage(&iplImgIB);

		iplImageOut = cvCreateImage(cvGetSize(image), IPL_DEPTH_8U, 3);
		cvMerge(iplImgOR, iplImgOG, iplImgOB, NULL, iplImageOut);
		cvReleaseImage(&iplImgOR);
		cvReleaseImage(&iplImgOG);
		cvReleaseImage(&iplImgOB);
	}
	return iplImageOut;
}
开发者ID:changeyourdestiny,项目名称:DIP,代码行数:27,代码来源:ocv_histogramac.c

示例11: ASSERT

/// <summary>
///光照归一化处理
///1.转换色彩空间到HSV空间;
///2.把HSV空间的V值设置为固定的值IlluminationThreshold;
///3.再从HSV空间转换到RGB空间;
/// </summary>
void CLightSet::LightNormalization(IplImage* src, IplImage* dst, int threshold){
	ASSERT(src->nChannels==3);
	//转换色彩空间
	cvCvtColor(src,dst,CV_RGB2HSV);
	//分离通道
	IplImage* imgChannel[3] = { 0, 0, 0 };  

	for (int i=0;i<dst->nChannels;i++)
	{
		imgChannel[i] = cvCreateImage(cvGetSize( dst ), IPL_DEPTH_8U, 1);  //要求单通道图像才能直方图均衡化  
	}

	cvSplit(dst, imgChannel[0], imgChannel[1], imgChannel[2],0);//HSVA  

	CvScalar avg=cvAvg(imgChannel[2]);
	cvCvtScale(imgChannel[2],imgChannel[2],1.0,threshold-avg.val[0]);
	cvMerge( imgChannel[0], imgChannel[1], imgChannel[2], 0, src );  		

	cvCvtColor(dst,dst,CV_HSV2RGB);

	for (int i=0;i<dst->nChannels;i++)
	{
		cvReleaseImage(&imgChannel[i] ); 
	}
}
开发者ID:cJeek,项目名称:homeServiceRobot,代码行数:31,代码来源:LightSet.cpp

示例12: cvCreateImage

Mat initModify::histogramEqualization(Mat & sourceImage) {
	// change the Mat to IplImage, which can make whole process quicker.
	IplImage * src;
	src = &IplImage(sourceImage);
	IplImage * imgChannel[4] = { 0, 0, 0, 0 };
	IplImage * dist = cvCreateImage(cvGetSize(src), IPL_DEPTH_8U, 3);

	if (src) {
		for (int i = 0; i < src->nChannels; i++) {
			imgChannel[i] = cvCreateImage(cvGetSize(src), IPL_DEPTH_8U, 1);
		}

		// split all the channels (R, G, B, A)
		cvSplit(src, imgChannel[0], imgChannel[1], imgChannel[2], imgChannel[3]);
		for (int i = 0; i < dist->nChannels; i++) {
			cvEqualizeHist(imgChannel[i], imgChannel[i]);
		}
		// merge all the channels
		cvMerge(imgChannel[0], imgChannel[1], imgChannel[2], imgChannel[3], dist);
		Mat resultImage = cvarrToMat(dist, true);
		cvReleaseImage(&dist);
		return resultImage;
	}
	else {
		return Mat();
	}
}
开发者ID:jmydurant,项目名称:jmy_video_composition,代码行数:27,代码来源:initModify.cpp

示例13: show_points

void show_points( IplImage* gray, CvPoint2D32f* u, int u_cnt, CvPoint2D32f* v, int v_cnt,
                  CvSize etalon_size, int was_found )
{
    CvSize size;
    int i;

    cvGetImageRawData( gray, 0, 0, &size );
    
    IplImage* rgb = cvCreateImage( size, 8, 3 );
    cvMerge( gray, gray, gray, 0, rgb );

    if( v )
    {
        for( i = 0; i < v_cnt; i++ )
        {
            cvCircle( rgb, cvPoint(cvRound(v[i].x), cvRound(v[i].y)), 3, CV_RGB(255,0,0), CV_FILLED);
        }
    }

    if( u )
    {
        for( i = 0; i < u_cnt; i++ )
        {
            cvCircle( rgb, cvPoint(cvRound(u[i].x), cvRound(u[i].y)), 3, CV_RGB(0,255,0), CV_FILLED);
        }
    }

    cvDrawChessboardCorners( rgb, etalon_size, v, v_cnt, was_found );

    cvvNamedWindow( "test", 0 );
    cvvShowImage( "test", rgb );

    cvvWaitKey(0);
}
开发者ID:JackJone,项目名称:opencv,代码行数:34,代码来源:achesscorners.cpp

示例14: cvCreateImage

IplImage* Panoramic::GetHsvFeature(IplImage* src,int H,int S,int V,int Scale ,int Scale_1 ,int Scale_2)
{
	IplImage *colorImg	  = cvCreateImage(cvGetSize(src),8,3);
    IplImage *hsvImg	  = cvCreateImage(cvGetSize(src),8,3);
	cvCopy(src,colorImg);
	IplImage *Plane_1	  = cvCreateImage( cvGetSize(colorImg), 8, 1);//H plane
    IplImage *Plane_2	  = cvCreateImage( cvGetSize(colorImg), 8, 1);//S plane
	IplImage *Plane_3	  = cvCreateImage( cvGetSize(colorImg), 8, 1);//V plane
	IplImage *dst	      = cvCreateImage( cvGetSize(src),8,1);
	cvCvtColor(colorImg,hsvImg,CV_BGR2HSV);
	cvCvtPixToPlane( hsvImg, Plane_1, Plane_2, Plane_3, 0 );

	cvEqualizeHist(Plane_2,Plane_2);//s_plane
	cvEqualizeHist(Plane_3,Plane_3);//v_plane
	cvMerge(Plane_1,Plane_2,Plane_3,0,hsvImg);
	cvInRangeS(hsvImg, cvScalar(H,S, V), cvScalar(5*Scale+H,5*Scale_1+S,5*Scale_2+V), dst);//cvScalar(0,40, 40), cvScalar(60, 170, 255)
	cvErode(dst,dst,0,2);

	/*cvNamedWindow("HSV_ROI",0);
	cvShowImage ("HSV_ROI",dst);*/

	cvReleaseImage(&colorImg);
	cvReleaseImage(&hsvImg);
	cvReleaseImage(&Plane_1);
	cvReleaseImage(&Plane_2);
	cvReleaseImage(&Plane_3);

	return dst;
}
开发者ID:Claycau,项目名称:MultiviewFaceReg,代码行数:29,代码来源:Panoramic.cpp

示例15: imageturn

void imageturn(Mat imagein,Mat &imageout)//将rgb转化hsv,然后改变hsv图像。
{
IplImage imgtemp=imagein;
IplImage* src =cvCloneImage(&imgtemp);
IplImage* floathsv = NULL;
IplImage* floatimgH = NULL;
IplImage* floatimgS = NULL;
IplImage* floatimgV = NULL;
IplImage* floatimgZ = NULL;
CvSize size = cvGetSize( src );
IplImage* imgout=cvCreateImage( size, 8, 3 );
floathsv = cvCreateImage( size, 8, 3 );
floatimgH = cvCreateImage( size, 8, 1 );
floatimgS = cvCreateImage( size,8, 1 );
floatimgV = cvCreateImage( size, 8, 1 );
floatimgZ = cvCreateImage( size, 8, 1 );
cvCvtColor(src,floathsv,CV_BGR2HSV);
cvSplit( floathsv, floatimgH, floatimgS, floatimgV, NULL);
Mat V(floatimgV,true);
Mat Vout;
sharpen(V,Vout);
imgtemp=Vout;
floatimgV=cvCloneImage(&imgtemp);
cvSmooth(floatimgV, floatimgZ, CV_MEDIAN);//中值滤波
cvEqualizeHist( floatimgZ, floatimgV ); //直方图均衡化
cvMerge( floatimgH, floatimgS, floatimgV,0,imgout);
Mat M(imgout,true);
imageout=M;
}
开发者ID:yinlinzi,项目名称:Text_Image_Location,代码行数:29,代码来源:Inhance_image.cpp


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