Esempio n. 1
0
int main (int argc, char * const argv[]) {
   
	const char* name = "Image Window";
	
	IplImage* img = cvLoadImage( "../../images/image1.png", 0 );
	
	// Edge detection with Canny operation
	IplImage* img_e = cvCreateImage( cvGetSize(img), IPL_DEPTH_8U, img->nChannels );//canny edge detection result
	double lowThresh = 80;
	double highThresh = 200;
	cvCanny( img, img_e, lowThresh*7*7, highThresh*7*7, 7 );
	
	//the center point of the ring mask	
	int centerX=1923;
	int centerY=1035;
	
	//the radii of the ring mask 
	double r1=360; //the inner circle radius
	double r2=540; //the outer circle radius
	
	//the size of the image
	int width=img->width;
	int height=img->height;
	
	ImageProcessing ImgProcess(centerX,centerY,height, width);
	ImgProcess.setEdgeImage(img_e);
	ImgProcess.setRingMaskAndEdgeInRing(r2,r1);
	
	
	ImgProcess.getEdgesStartedFrom(r1);
	
	//save the tracked points
	const char* savedPath="edgePointCoordinate.txt";
	ImgProcess.saveContours(savedPath);
	
	//show detected edges
	ImgProcess.showDetectedContours();
	
	//show original image
	cvNamedWindow( name, 0);
	cvShowImage(name, img);
	cvResizeWindow(name, 1000, 1000);
	cvWaitKey(0);
	
	// Release
	cvReleaseImage( &img );
	cvDestroyWindow( name );
	
	return 0;	
}
MBOOL
Mhal_facebeauty::
createFBJpegImg(IMEM_BUF_INFO Srcbufinfo, int u4SrcWidth, int u4SrcHeight, MUINT32 const Mode)
{
    MY_LOGD("[createFBJpegImg] in");
    MBOOL ret = MTRUE;
    CPTLog(Event_FBShot_createFBJpegImg, CPTFlagStart);
    MUINT32     u4Stride[3];
    u4Stride[0] = mu4W_yuv;
    u4Stride[1] = mu4W_yuv >> 1;
    u4Stride[2] = mu4W_yuv >> 1;
    //mrHdrCroppedResult as rYuvImgBufInfo
    MUINT32         u4ResultSize = Srcbufinfo.size;
    NSCamHW::ImgInfo    rYuvImgInfo(eImgFmt_YV16, u4SrcWidth , u4SrcHeight);
    NSCamHW::BufInfo    rYuvBufInfo(u4ResultSize, (MUINT32)Srcbufinfo.virtAddr, 0, Srcbufinfo.memID);
    NSCamHW::ImgBufInfo   rYuvImgBufInfo(rYuvImgInfo, rYuvBufInfo, u4Stride);
    
    mPostviewWidth = mShotParam.mi4PostviewWidth;
    mPostviewHeight = mShotParam.mi4PostviewHeight;     
    EImageFormat mPostviewFormat = static_cast<EImageFormat>(android::MtkCamUtils::FmtUtils::queryImageioFormat(mShotParam.ms8PostviewDisplayFormat));    
    mpPostviewImgBuf.size = android::MtkCamUtils::FmtUtils::queryImgBufferSize(mShotParam.ms8PostviewDisplayFormat, mPostviewWidth, mPostviewHeight);
    mpPostviewImgBuf.virtAddr = mpBlurImg.virtAddr; //using original buffer for reduce memory
    mpPostviewImgBuf.memID = -1;    
    ImgProcess(Srcbufinfo, u4SrcWidth, u4SrcHeight, eImgFmt_YV16, mpPostviewImgBuf, mPostviewWidth, mPostviewHeight, mPostviewFormat);
    
    MUINT32     u4PosStride[3];
    u4PosStride[0] = mPostviewWidth;
    u4PosStride[1] = mPostviewWidth >> 1;
    u4PosStride[2] = mPostviewWidth >> 1;
    
    NSCamHW::ImgInfo    rPostViewImgInfo(mPostviewFormat, mPostviewWidth, mPostviewHeight);
    NSCamHW::BufInfo    rPostViewBufInfo(mpPostviewImgBuf.size, (MUINT32)mpPostviewImgBuf.virtAddr, 0, mpPostviewImgBuf.memID);
    NSCamHW::ImgBufInfo   rPostViewImgBufInfo(rPostViewImgInfo, rPostViewBufInfo, u4PosStride);
    
    if(!Mode)
        handlePostViewData((MUINT8*)mpPostviewImgBuf.virtAddr, mpPostviewImgBuf.size);
        
    ret = createJpegImgWithThumbnail(rYuvImgBufInfo, rPostViewImgBufInfo, Mode);
    CPTLog(Event_FBShot_createFBJpegImg, CPTFlagEnd);
    MY_LOGD("[createFBJpegImg] out");
    return ret;
}