diff --git a/IRImageProcessing/Source.cpp b/IRImageProcessing/Source.cpp index 5578528..ff910b9 100644 --- a/IRImageProcessing/Source.cpp +++ b/IRImageProcessing/Source.cpp @@ -242,7 +242,6 @@ cv::Mat src64F; src.convertTo(src64F, CV_64F); cv::Mat margeImage = cv::Mat::zeros(src64F.size(), CV_64F); - cv::Mat marge8UImage; cv::Mat margeNormImage; // Find the angle that gives the maximum sum of gaborImage8U @@ -253,7 +252,7 @@ cv::Mat kern = cv::getGaborKernel(cv::Size(ksize, ksize), sigma, theta, lambda, gamma, psi, CV_64F); kern /= cv::sum(kern)[0]; - cv::Mat gaborImage, gabor8UImage, gaborBinaryImage, gaborNormImage; + cv::Mat gaborImage, gaborBinaryImage; cv::filter2D(src64F, gaborImage, CV_64F, kern); //�摜�̌^�ϊ��Ɛ��K�� @@ -261,17 +260,8 @@ cv::minMaxLoc(gaborImage, &gaborMinVal, &gaborMaxVal); // gaborImage�̍ŏ��l�ƍő�l���擾 margeImage = maximumImage(gaborImage, margeImage); - cv::normalize(gaborImage, gaborNormImage, 0, 255, cv::NORM_MINMAX, CV_8U); - // �^�ϊ� - gaborImage.convertTo(gabor8UImage, CV_8U, 255.0 / (gaborMaxVal - gaborMinVal), -gaborMinVal * 255.0 / (gaborMaxVal - gaborMinVal)); - - - - //cv::threshold(gabor8UImage, gaborBinaryImage, 128 , 255, cv::THRESH_BINARY); - - //cv::adaptiveThreshold(gabor8UImage, gaborBinaryImage, 255, cv::ADAPTIVE_THRESH_MEAN_C, cv::THRESH_BINARY, 101, 10); - + // �J�[�l���̒l��0����255�͈̔͂ɐ��K�� double kernMinVal, kernMaxVal; cv::minMaxLoc(kern, &kernMinVal, &kernMaxVal); // �ŏ��l�ƍő�l���擾 @@ -284,16 +274,14 @@ cv::Mat gaborImageScaled, diffImage; // �����摜 - //cv::absdiff(src, gabor8UImage, diffImage); cv::convertScaleAbs(diffImage, gaborImageScaled, 1.0 / division); std::string fileStr = std::to_string(i) + "_over_" + std::to_string(division) + "pi"; - //std::cout << fileStr << ":min = " << gaborMinVal << " :max = " << gaborMaxVal << std::endl; + std::cout << fileStr << ":min = " << gaborMinVal << " :max = " << gaborMaxVal << std::endl; // �摜�̕ۑ� cv::imwrite(dirName + "/Gabor_" + fileStr + ".png", gaborImage); - cv::imwrite(dirName + "/Gabor8U_" + fileStr + ".png", gabor8UImage); - cv::imwrite(dirName + "/GaborNorm_" + fileStr + ".png", gaborNormImage); + //cv::imwrite(dirName + "/GaborNorm_" + fileStr + ".png", gaborNormImage); //cv::imwrite(dirName + "/diff_" + fileStr + ".png", diffImage); //cv::imwrite(dirName + "/GaborOtsuBinaryImage_" + fileStr + ".png", gaborBinaryImage); @@ -307,16 +295,14 @@ double margeMinVal, margeMaxVal; cv::minMaxLoc(margeImage, &margeMinVal, &margeMaxVal); // �ŏ��l�ƍő�l���擾 - margeImage.convertTo(marge8UImage, CV_8U, 255.0 / (margeMaxVal - margeMinVal), -margeMinVal * 255.0 / (margeMaxVal - margeMinVal)); cv::normalize(margeImage, margeNormImage, 0, 255, cv::NORM_MINMAX, CV_8U); - cv::Mat margeOtsuBinaryImage, removedMargeOtsuBinaryImage; - cv::threshold(margeNormImage, margeOtsuBinaryImage, 0, 255, cv::THRESH_BINARY | cv::THRESH_OTSU); + cv::Mat margeBinaryImage, removedMargeOtsuBinaryImage; + cv::threshold(margeNormImage, margeBinaryImage, 60, 255, cv::THRESH_BINARY); double areaThreshold = 1000.0; - removedMargeOtsuBinaryImage = removeSmallAreaImage(margeOtsuBinaryImage, areaThreshold); - cv::imwrite(dirName + "/MargeOtsuBinaryImage.png", margeOtsuBinaryImage); + removedMargeOtsuBinaryImage = removeSmallAreaImage(margeBinaryImage, areaThreshold); + cv::imwrite(dirName + "/MargeTH60BinaryImage.png", margeBinaryImage); cv::imwrite(dirName + "/RemovedMargeSmallAreaBinaryImage_" + std::to_string((int)areaThreshold) + ".png", removedMargeOtsuBinaryImage); cv::imwrite(dirName + "/Marge.png", margeImage); - cv::imwrite(dirName + "/Marge8U.png", marge8UImage); cv::imwrite(dirName + "/MargeNorm.png", margeNormImage); //BinaryProcessing(ori, margeImage, dirName); @@ -327,11 +313,11 @@ int main() { - std::string inputFileName = "trimmed.tif"; + std::string inputFileName = "experiment_0412_trimmed/hattori.tif"; // �o�͏��� - std::string baseDir = "output/"; - std::string dirBaseName = "sigma18_lambda42_"; + std::string baseDir = "experiment_0412_result/"; + std::string dirBaseName = "subject0_0_degree_"; std::string dirName = baseDir + dirBaseName;