9
Image Processing ViPLab Professor: Pei-Jun Lee Researcher: Bui Trong An Multi-focus and Multi-cues Weekly Report Dec 27 th 2016

ViPLab - Weekly report 20161227

Embed Size (px)

Citation preview

Page 1: ViPLab - Weekly report 20161227

Image Processing

ViPLabProfessor: Pei-Jun LeeResearcher: Bui Trong An

Multi-focus and Multi-cuesWeekly Report Dec 27th 2016

Page 2: ViPLab - Weekly report 20161227

Outline

- Implemented- Problems- To do expected

Page 3: ViPLab - Weekly report 20161227

Input Image

Page 4: ViPLab - Weekly report 20161227

Follow Chart

Source Image

Convert to Mat Object Thresholding Noise removal

sure background area

Finding sure foreground area

Finding unknown region

Convert to Bitmap

Export Image

Page 5: ViPLab - Weekly report 20161227

Follow Code public void Progress2016DecWeek4(){ //Convert Image to gray Image processedMat1 = imageBasicProcessing1.ConvertToGrayMat(inputMat1); processedMat2 = imageBasicProcessing2.ConvertToGrayMat(inputMat2);

//Reference document: http://docs.opencv.org/trunk/d3/db4/tutorial_py_watershed.html Imgproc.threshold(processedMat1, processedMat1, 0, 255, Imgproc.THRESH_BINARY_INV + Imgproc.THRESH_OTSU); Imgproc.threshold(processedMat2, processedMat2, 0, 255, Imgproc.THRESH_BINARY_INV + Imgproc.THRESH_OTSU);

//# noise removal Mat kernel = zeros(3,3,CvType.CV_8U); Mat opening1 = new Mat(); Mat opening2 = new Mat(); Imgproc.morphologyEx(processedMat1, opening1, Imgproc.MORPH_OPEN, kernel); Imgproc.morphologyEx(processedMat2, opening2, Imgproc.MORPH_OPEN, kernel);

//# sure background area Mat sure_bg1 = new Mat(processedMat1.size(),CvType.CV_8U); Mat sure_bg2 = new Mat(processedMat2.size(),CvType.CV_8U); Imgproc.dilate(opening1,sure_bg1,kernel,new Point(),3); Imgproc.dilate(opening2,sure_bg2,kernel,new Point(),3);

//# Finding sure foreground area Mat distTransform1 = new Mat(); Mat distTransform2 = new Mat(); Imgproc.distanceTransform(opening1,distTransform1,Imgproc.DIST_L2,5); Imgproc.distanceTransform(opening2, distTransform2, Imgproc.DIST_L2,5); Mat sure_fg1 = new Mat(processedMat1.size(),CvType.CV_8U); Mat sure_fg2 = new Mat(processedMat2.size(),CvType.CV_8U); Imgproc.threshold(distTransform1, sure_fg1, 0.7*Core.minMaxLoc(distTransform1).maxVal,255,0); Imgproc.threshold(distTransform2, sure_fg2, 0.7*Core.minMaxLoc(distTransform2).maxVal,255,0);

//# Finding unknown regions Core.subtract(sure_bg1, sure_fg1, processedMat1 , new Mat(), CvType.CV_8U); Core.subtract(sure_bg2, sure_fg2, processedMat2, new Mat(), CvType.CV_8U);

//Show Image ShowImage(processedImageView1, processedMat1); ShowImage(processedImageView2, processedMat2); }

Page 6: ViPLab - Weekly report 20161227

Result Image

Page 7: ViPLab - Weekly report 20161227

Problem

Page 8: ViPLab - Weekly report 20161227

Problem

//# noise removalMat kernel = zeros(3,3,CvType.CV_8U);

//# sure background areaImgproc.dilate(opening1,sure_bg1,kernel,new Point(),3);

//# Finding sure foreground areaImgproc.distanceTransform(opening1,distTransform1,Imgproc.DIST_L2,5);Imgproc.threshold(distTransform1, sure_fg1, 0.7*Core.minMaxLoc(distTransform1).maxVal,255,0);

//# Finding unknown regionsCore.subtract(sure_bg1, sure_fg1, processedMat1 , new Mat(), CvType.CV_8U);

Page 9: ViPLab - Weekly report 20161227

To do expected

- Complete detect Object for 2 original Image (near focus and far focus images)