मैं आटा परिवर्तन का उपयोग कर सर्कल का पता लगाने की कोशिश कर रहा हूं।हाफ ट्रांसफॉर्म का उपयोग सर्किल का पता लगाने
मेरे वर्तमान कोड के साथ मैं नीचे
एक पता लगा सकते हैं लेकिन मैं चक्र मैं पता चला है अंदर ब्लैक होल लगाना चाहते हैं। हालांकि houghcircle विधि के बदलते पैरामीटर मेरी मदद नहीं की है। वास्तव में यह उन मंडलियों को मिला जो अस्तित्व में नहीं हैं।
इसके अलावा, मैं फसल चक्र मैंने पाया की कोशिश की और एक अन्य hough इस नए हिस्सा यह भी मेरी मदद नहीं की थी पर परिणत कर दिया है।
यहाँ मेरी कोड है
#include <stdio.h>
#include <iostream>
#include "opencv2/core/core.hpp"
#include "opencv2/features2d/features2d.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/calib3d/calib3d.hpp"
#include "opencv2/nonfree/nonfree.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/opencv.hpp" // needs imgproc, imgcodecs & highgui
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
Mat src, circleroi;
/// Read the image
src = imread("/Users/Rodrane/Documents/XCODE/test/mkedenemeleri/alev/delikli/gainfull.jpg", 2);
/// Convert it to gray
// cvtColor(src, src_gray, CV_BGR2GRAY);
/// Reduce the noise so we avoid false circle detection
GaussianBlur(src, src, Size(3, 3), 2, 2);
// adaptiveThreshold(src,src,255,CV_ADAPTIVE_THRESH_MEAN_C,CV_THRESH_BINARY,9,14);
vector<Vec3f> circles,circlessmall;
// Canny(src, src, 50 , 70, 3);
/// Apply the Hough Transform to find the circles
HoughCircles(src, circles, CV_HOUGH_GRADIENT, 1, src.rows/8, 200, 100, 0, 0);
/// Draw the circles detected
for(size_t i = 0; i < circles.size(); i++)
{
Point center(cvRound(circles[i][0]), cvRound(circles[i][4]));
int radius = cvRound(circles[i][5]);
// circle center
circle(src, center, 3, Scalar(0,255,0), -1, 8, 0);
// circle outline
circle(src, center, radius, Scalar(0,255,0), 3, 8, 0);
circleroi = src(Rect(center.x - radius, // ROI x-offset, left coordinate
center.y - radius, // ROI y-offset, top coordinate
2*radius, // ROI width
2*radius));
// imshow("Hough Circle Transform Demo", circleroi);
}
resize(src, src, Size(src.cols/2, src.rows/2));
// threshold(circleroi, circleroi, 50, 255,CV_THRESH_BINARY);
// cout<<circleroi<<endl;
imshow("asd",src);
// imwrite("/Users/Rodrane/Documents/XCODE/test/mkedenemeleri/alev/cikti/deliksiz.jpg",circleroi);
waitKey(0);
return 0;
}
अद्यतन: hough चालाक अंदर मैं मैन्युअल रूप से मौसम यह चक्र पाता है या नहीं यह देखने के लिए चालाक इस्तेमाल किया कर रहा हूँ का उपयोग करता है के बाद से।
यहां कैनी (src, src, 100, 200,3) के साथ कैनी परिणाम;
आप
क्या आपने इसे थ्रेसहोल्डिंग के बिना आजमाया था? HoughCircles आंतरिक रूप से canny का उपयोग करता है ... – Micka
छवि पर कोई सीमा नहीं है। रोशनी के लिए केवल गॉसियन धुंध लेकिन मैंने इसे भी अक्षम कर दिया है। –
क्या आप छवि को छेद के साथ पोस्ट कर सकते हैं लेकिन ब्लैक सर्कल के बिना, कृपया। मैं पहली दो छवियों में कोई काला छेद नहीं देख सकता। – kkuilla