You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.8 KiB
Plaintext
66 lines
1.8 KiB
Plaintext
|
5 years ago
|
//void CAlgorithmFluorescence::imageSegementation(const cv::Mat &srcImage)
|
||
|
|
//{
|
||
|
|
// Mat mask;
|
||
|
|
// //Mat sobelImg = srcImage.clone();
|
||
|
|
// //genSobelImage(sobelImg);
|
||
|
|
// //sobelImg.convertTo(sobelImg, CV_8UC1);
|
||
|
|
//
|
||
|
|
//
|
||
|
|
// Mat sobelX, sobelY;
|
||
|
|
// Sobel(srcImage, sobelX, CV_32FC1, 1, 0, 3, BORDER_REPLICATE);
|
||
|
|
// Sobel(srcImage, sobelY, CV_32FC1, 0, 1, 3, BORDER_REPLICATE);
|
||
|
|
// Mat img = sobelX.mul(sobelX) + sobelY.mul(sobelY);
|
||
|
|
// Mat tempImg;
|
||
|
|
// img.convertTo(tempImg, CV_32FC1);
|
||
|
|
// Mat tempImg0;
|
||
|
|
// sqrt(tempImg, tempImg0);
|
||
|
|
// img = tempImg0;
|
||
|
|
// img.convertTo(img, CV_8UC1);
|
||
|
|
// Mat blurImg;
|
||
|
|
// cv::medianBlur(img, blurImg, 11);
|
||
|
|
// bgSubtractor(img, mask, 0.001);
|
||
|
|
//
|
||
|
|
// /*cv::Mat element5(5, 5, CV_8U, cv::Scalar(1));
|
||
|
|
// cv::Mat closedMat;
|
||
|
|
// cv::morphologyEx(mask, closedMat, cv::MORPH_CLOSE, element5);*/
|
||
|
|
//
|
||
|
|
// //cv::floodFill();
|
||
|
|
// luffy_base::luffyCircle pCircle;
|
||
|
|
//
|
||
|
|
// vector<cv::Mat> mats= ImageProcess::findCircleObject(mask, srcImage, 15, &pCircle);
|
||
|
|
// if (mats.size() == 0)
|
||
|
|
// {
|
||
|
|
// return;
|
||
|
|
// }
|
||
|
|
// if (mats[0].size() != mats[1].size())
|
||
|
|
// {
|
||
|
|
// return;
|
||
|
|
// }
|
||
|
|
// Mat dilatedImgBin;
|
||
|
|
// Mat imgBinary = mats[0] > 0;
|
||
|
|
// dilate(imgBinary, dilatedImgBin, Mat::ones(5, 5, CV_32FC1));
|
||
|
|
// erode(dilatedImgBin, imgBinary, Mat::ones(5, 5, CV_32FC1));
|
||
|
|
// imgBinary = ~imgBinary;
|
||
|
|
// //Mat canvas(imgBinary.size(), imgBinary.type(), Scalar::all(0));
|
||
|
|
// vector<vector<Point>> cons;
|
||
|
|
// cv::findContours(imgBinary, cons, RETR_EXTERNAL, CHAIN_APPROX_NONE);
|
||
|
|
// for (const vector<Point> & pContour : cons)
|
||
|
|
// {
|
||
|
|
// const int& size = pContour.size();
|
||
|
|
// if (size < 200)
|
||
|
|
// {
|
||
|
|
// Mat(pContour).setTo(255);
|
||
|
|
// //continue;
|
||
|
|
// }
|
||
|
|
// //cv::fillPoly(canvas, vector<vector<Point>>(1, pContour), Scalar(255));
|
||
|
|
// }
|
||
|
|
// //Mat tarMat = (~canvas).mul(mats[1]) / 255;
|
||
|
|
// //openOper(imgBinary, Mat::ones(1, 13, CV_32FC1));
|
||
|
|
//
|
||
|
|
//
|
||
|
|
//
|
||
|
|
//
|
||
|
|
// return;
|
||
|
|
//
|
||
|
|
//}
|