close

System.out.println("Hello world");

System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

Mat originImage = Highgui.imread("image.png",Highgui.CV_LOAD_IMAGE_ANYDEPTH );
Mat originImage2 = Highgui.imread("image.png",Highgui.CV_LOAD_IMAGE_COLOR);
Mat hierarchy = new Mat(originImage.rows(),originImage.cols(),CvType.CV_8UC1,new Scalar(0));
List<MatOfPoint> contours = new ArrayList<MatOfPoint>(100);
Imgproc.findContours(originImage, contours, hierarchy, Imgproc.RETR_LIST, Imgproc.CHAIN_APPROX_SIMPLE);

for(int i=0;i<contours.size();i++)
{
Rect r = Imgproc.boundingRect(contours.get(i));
int ContourArea = r.height* r.width;
if(ContourArea > 500)
{
Imgproc.drawContours(originImage, contours,i,new Scalar(255,0,0,255),-1);
Core.rectangle(originImage2, new Point(r.x, r.y), new Point(r.x + r.width, r.y + r.height), new Scalar(0, 255, 0));
}

}

Highgui.imwrite("drawContours.png",originImage);
Highgui.imwrite("drawContours2.png",originImage2);

System.out.println("Done!");

 

---

hierarchy參數不知道有什麼作用(事實上opencv有很多參數我都不知道功能)

在這一版中又多了一個MatOfPoint的type

要注意findContours只能是8uc1=灰階圖

drawContours我用的時候有殘留一點小點,即使用了上面的篩選方法~@@好怪阿

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 natsumi93 的頭像
    natsumi93

    Alpha Planet

    natsumi93 發表在 痞客邦 留言(2) 人氣()