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; }