Quantcast
Channel: OpenCV Q&A Forum - Latest question feed
Viewing all articles
Browse latest Browse all 600

How to do alignment of image?

$
0
0
I need to do the following : 1. Load largest_contour image 2. Calculate moments of the ROI 3. Find the COG of the ROI using equation :{x,y} = {M10/M00, M01/M00} 4. Align the contour ,that is ,to find the COG of the image and translate the ROI to the COG of the image 5. Save the aligned image temporarily 6. Display the aligned image I'm unable to find the COG and align the contour my c++ code for finding contour : int main() { int largest_area = 0; int largest_contour_index = 0; Rect bounding_rect; Mat src = imread("Morp.jpg"); //Load source image Mat thr(src.rows, src.cols, CV_8UC1); Mat dst(src.rows, src.cols, CV_8UC1, Scalar::all(0)); //cvtColor(src, thr, CV_BGR2GRAY); //Convert to gray //threshold(thr, thr, 25, 255, THRESH_BINARY); //Threshold the gray vector> contours; // Vector for storing contour vector hierarchy; findContours(thr, contours, hierarchy, CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE); // Find the contours in the image for (int i = 0; i< contours.size(); i++) // iterate through each contour. { double a = contourArea(contours[i], false); // Find the area of contour if (a>largest_area) { largest_area = a; largest_contour_index = i; //Store the index of largest contour bounding_rect = boundingRect(contours[i]); // Find the bounding rectangle for biggest contour } } Scalar color(255, 255, 255); drawContours(dst, contours, largest_contour_index, color, CV_FILLED, 8, hierarchy); // Draw the largest contour using previously stored index. rectangle(src, bounding_rect, Scalar(0, 255, 0), 1, 8, 0); imshow("src", src); imshow("Largest Contour", dst); imwrite("Contour.jpg", dst); waitKey(0); }

Viewing all articles
Browse latest Browse all 600

Latest Images

Trending Articles



Latest Images