में थ्रेसहोल्ड समायोजित करना मैं टेक्स्ट पहचान पर अपना हाथ देखना चाहता था, इसलिए मैंने ढलानों, वक्र आदि को खोजने के लिए किनारों और सी ++ का पता लगाने के लिए ओपनसीवी का उपयोग किया है, किनारे एल्गोरिदम बड़े और अनियमित सेट पर अच्छी तरह से काम करता है पात्रों के लेकिन जब यह छोटे मुद्रित पाठ या टेक्स्ट के साथ आता है, तो कैप्चा में एम्बेडेड जैसे कई पृष्ठभूमि शोर के साथ यह संघर्ष होता है और अपूर्ण दिखता है, मेरा अनुमान था कि मैंने थ्रेसहोल्ड वैल्यू सही तरीके से सेट नहीं किया था और सफलता के बिना अलग-अलग मूल्यों का प्रयास किया था।कैनी एज एल्गोरिदम
यहाँ मेरी कोड है:
#include "cv.h"
#include "highgui.h"
using namespace cv;
const int low_threshold = 50;
const int high_threshold = 150;
int main()
{
IplImage* newImg;
IplImage* grayImg;
IplImage* cannyImg;
newImg = cvLoadImage("ocv.bmp",1);
grayImg = cvCreateImage(cvSize(newImg->width, newImg->height), IPL_DEPTH_8U, 1);
cvCvtColor(newImg, grayImg, CV_BGR2GRAY);
cannyImg = cvCreateImage(cvGetSize(newImg), IPL_DEPTH_8U, 1);
cvCanny(grayImg, cannyImg, low_threshold, high_threshold, 3);
cvNamedWindow ("Source", 1);
cvNamedWindow ("Destination",1);
cvShowImage ("Source", newImg);
cvShowImage ("Destination", cannyImg);
cvWaitKey(0);
cvDestroyWindow ("Source");
cvDestroyWindow ("Destination");
cvReleaseImage (&newImg);
cvReleaseImage (&grayImg);
cvReleaseImage (&cannyImg);
return 0;
}
मैं शुद्ध भर में देखा है और इस साइट से इस कोड में जैसे कुछ जटिल थ्रेशोल्डिंग की स्थिति को देखा है:
% Set direction to either 0, 45, -45 or 90 depending on angle.
[x,y]=size(f1);
for i=1:x-1,
for j=1:y-1,
if ((gradAngle(i,j)>67.5 && gradAngle(i,j)<=90) || (gradAngle(i,j)>=-90 && gradAngle(i,j)<=-67.5))
gradDirection(i,j)=0;
elseif ((gradAngle(i,j)>22.5 && gradAngle(i,j)<=67.5))
gradDirection(i,j)=45;
elseif ((gradAngle(i,j)>-22.5 && gradAngle(i,j)<=22.5))
gradDirection(i,j)=90;
elseif ((gradAngle(i,j)>-67.5 && gradAngle(i,j)<=-22.5))
gradDirection(i,j)=-45;
end
end
end
यदि यह टी नहीं है वह समाधान किसी को मुझे इस एल्गोरिदम के समतुल्य सी ++ प्रदान कर सकता है, अगर ऐसा नहीं है तो मैं और क्या कर सकता हूं?
मैंने ओपनसीवी का उपयोग नहीं किया है, लेकिन आप पहले कैनी एज डिटेक्टर के सिग्मा पैरामीटर के साथ भी खेल सकते हैं। – WebMonster
आपको इन मानों को ढाल परिमाण छवि के हिस्टोग्राम से गणना करना होगा, है ना? –