Bir resimdeki metin bölgelerini ayıklamak için OpenCV 3.0.0 beta'da MSER algoritmasını kullanmaya çalışıyorum. Sonunda, tespit edilen MSER bölgeleriyle ikili bir maskeye ihtiyacım var, ancak algoritma sadece konturlar sağlıyor. Bu konturları çizmeye çalıştım ama beklenen sonucu alamıyorum. OpenCV 3.0.0 MSER İkili Maskesi
Bu
kullanmak kodudur:
sorun dışbükey bölgeler gerçek Mser bölgeden geçen çizgilerle dolu olmasıdır:
void mserExtractor (const Mat& image, Mat& mserOutMask){
Ptr<MSER> mserExtractor = MSER::create();
vector<vector<cv::Point>> mserContours;
vector<cv::Rect> mserBbox;
mserExtractor->detectRegions(image, mserContours, mserBbox);
for(int i = 0; i<mserContours.size(); i++)
{
drawContours(mserOutMask, mserContours, i, Scalar(255, 255, 255), 4);
}
}
Bu sonucudur.
Herhangi fikirleri nasıl hatlarına gelen dolu bölgeyi almak için (veya başka yollarla Mser maskesi almak için): Ben MATLAB detectMSERFeatures
aldığım gibi bölgedeki piksellerin sadece listesini istersiniz?