Tôi cần giải quyết vấn đề khi tôi phát hiện hình chữ nhật với các góc được làm tròn bằng cách sử dụng opencv. Về cơ bản tôi đang sử dụng cùng squares.c mẫu mã:Phát hiện điểm góc từ hình chữ nhật với các góc bo tròn
cvFindContours(gray, storage, &contours, sizeof(CvContour), CV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE);
while(contours)
{
double area=fabs(cvContourArea(contours, CV_WHOLE_SEQ));
if(area < minimum_area || area > maximum_area) {
contours = contours->h_next;
continue;
}
result = cvApproxPoly(contours, sizeof(CvContour), storage,
CV_POLY_APPROX_DP, cvContourPerimeter(contours)*0.05, 0);
if(result->total == 4 &&
fabs(cvContourArea(result,CV_WHOLE_SEQ)) > 1000 &&
cvCheckContourConvexity(result))
{
Với mã này, tôi thường có thể phát hiện các hình ảnh, nhưng tôi cần phải điều chỉnh phối cảnh của hình ảnh và cho rằng tôi cần phải phát hiện các góc của hình ảnh , làm thế nào để làm điều này và hình ảnh đã làm tròn góc? Vấn đề xảy ra vì điểm tôi không cần phát hiện giữa các điểm, ví dụ, tôi tạo ra hình ảnh sau đây, nơi các đường màu đen biểu diễn các điểm được phát hiện bởi mã hiện tại và các dấu chấm màu xanh là những điểm tôi cần?
Thank cho bất kỳ sự giúp đỡ.
Bằng "Tôi cần giải quyết vấn đề", ý của bạn là "Tôi muốn một hàm OpenCV sẵn sàng giải quyết vấn đề của tôi"? Vấn đề của bạn được giải quyết bằng cách đặt hàng thông minh đơn giản của các điểm đen. Từ đó bạn xây dựng bốn góc màu xanh lam. – mmgp
@mmgp đặt hàng các điểm đen? Nhưng điểm đen không chứa điểm xanh! – Ricardo
Tôi tìm thấy giải pháp ở đây: http://stackoverflow.com/questions/22519545/automatic-perspective-correction-opencv – delkant