Hiện tại tôi đang phát triển dự án xử lý hình ảnh và tôi đang sử dụng javacv để phát triển các thành phần xử lý hình ảnh. Tôi đã có thể trích xuất một số phần thú vị của một hình ảnh và bây giờ tôi cần phải đọc các tọa độ x và y của các đối tượng đó. Đây là hình ảnh mà tôi haveextractedLàm thế nào để có được tọa độ x, y của các đối tượng được trích xuất trong javacv?
Và tôi cần phải xác định những đối tượng và vẽ hình vuông xung quanh các đối tượng. Tôi đã đi qua một số hướng dẫn và cố gắng xác định các đối tượng bằng cách sử dụng mã sau đây.
IplImage img="sourceimage";
CvSize sz = cvSize(img.width(), img.height());
IplImage gry=cvCreateImage(sz, img.depth(), 1);
cvCvtColor(img, gry, CV_BGR2GRAY);
cvThreshold(gry, gry, 200, 250, CV_THRESH_BINARY);
CvMemStorage mem = CvMemStorage.create();
CvSeq contours = new CvSeq();
CvSeq ptr = new CvSeq();
cvFindContours(gry, mem, contours, Loader.sizeof(CvContour.class) , CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE, cvPoint(0,0));
CvRect boundbox;
for (ptr = contours; ptr != null; ptr = ptr.h_next()) {
boundbox = cvBoundingRect(ptr, 0);
if(boundbox.height()>10||boundbox.height()>10){
cvRectangle(gry, cvPoint(boundbox.x(), boundbox.y()), cvPoint(boundbox.x() + boundbox.width(), boundbox.y() + boundbox.height()),CvScalar.BLUE, 0, 0, 0);
System.out.println(boundbox.x()+", "+boundbox.y());
}
}
cvShowImage("contures", gry);
cvWaitKey(0);
Nhưng nó không vẽ như hình chữ nhật xung quanh các đối tượng. Tôi muốn biết liệu tôi có thể sử dụng phương thức cvFindContours để xác định các đối tượng đó không? Xin vui lòng một số người có thể giải thích làm thế nào để lưu trữ mục tiêu của tôi bằng cách sử dụng javacv/opencv?
Vì vậy, khi bạn vẽ các hình chữ nhật này, chúng có liên quan như thế nào với các đối tượng bạn có? – MahdeTo
Tại sao bỏ qua câu trả lời cho câu hỏi của bạn ?? – ArtemStorozhuk
@MahdeĐể tôi cần biết cách vẽ hình chữ nhật quanh các đối tượng này. –