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

//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;
//
//}