diff --git a/IRImageProcessing/Source.cpp b/IRImageProcessing/Source.cpp index 7577c73..fbb00d3 100644 --- a/IRImageProcessing/Source.cpp +++ b/IRImageProcessing/Source.cpp @@ -228,23 +228,41 @@ 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, gaborOtsuBinaryImage; cv::filter2D(src, gaborImage, CV_64F, kern); - gaborImage.convertTo(gabor8UImage, CV_8U); + + //�摜�̌^�ϊ��Ɛ��K�� + double minVal, maxVal; + cv::minMaxLoc(gaborImage, &minVal, &maxVal); // gaborImage�̍ŏ��l�ƍő�l���擾 + gaborImage.convertTo(gabor8UImage, CV_8U, 255.0 / (maxVal - minVal), -minVal * 255.0 / (maxVal - minVal)); cv::threshold(gabor8UImage, gaborOtsuBinaryImage, 0, 255, cv::THRESH_BINARY | cv::THRESH_OTSU); + // �J�[�l���̒l��0����255�͈̔͂ɐ��K�� + double kernMinVal, kernMaxVal; + cv::minMaxLoc(kern, &kernMinVal, &kernMaxVal); // �ŏ��l�ƍő�l���擾 + kern = 255 * (kern - kernMinVal) / (kernMaxVal - kernMinVal); + + // CV_64F����CV_8U�ɕϊ� + cv::Mat kern8U; + kern.convertTo(kern8U, CV_8U); cv::Mat gaborImageScaled, diffImage; // �����摜 cv::absdiff(src, gabor8UImage, diffImage); cv::convertScaleAbs(diffImage, gaborImageScaled, 1.0 / division); - cv::imwrite(dirName + "/Gabor_" + std::to_string(angle) + ".png", gabor8UImage); - cv::imwrite(dirName + "/diff_" + std::to_string(angle) + ".png", diffImage); - cv::imwrite(dirName + "/GaborOtsuBinaryImage_" + std::to_string(angle) + ".png", gaborOtsuBinaryImage); - cv::add(margeImage, gaborImageScaled, margeImage, cv::noArray(), CV_8U); + std::string fileStr = std::to_string(i) + "_over_" + std::to_string(division) + "pi"; + // �摜�̕ۑ� + cv::imwrite(dirName + "/Gabor_" + fileStr + ".png", gabor8UImage); + cv::imwrite(dirName + "/diff_" + fileStr + ".png", diffImage); + cv::imwrite(dirName + "/GaborOtsuBinaryImage_" + fileStr + ".png", gaborOtsuBinaryImage); + + // �J�[�l�����摜�t�@�C���Ƃ��ĕۑ� + cv::imwrite(dirName + "/Kernel_" + fileStr + ".png", kern8U); + + // �摜�̍��� + cv::add(margeImage, gaborImageScaled, margeImage, cv::noArray(), CV_8U); }