对比度拉伸
inline void scale_image(cv::Mat Image, cv::Mat& ImageScaled, int Min = 0, int Max = 255) {
cv::Mat mask = (Image < Min);
cv::normalize(Image, ImageScaled, Min, Max, cv::NORM_MINMAX, CV_8U);
// 将小于60的像素值设置为0
ImageScaled.setTo(0, mask);
}
灰度开运算
//灰度开运算 先腐蚀再膨胀,可以去除小白点
inline void gray_opening_rect(const cv::Mat& gray_image, Mat& opened_image,int kernel_size) {
// 定义内核
cv::Mat kernel = cv::getStructuringElement(cv::MORPH_RECT, cv::Size(kernel_size, kernel_size));
// 执行开运算
cv::morphologyEx(gray_image, opened_image, cv::MORPH_OPEN, kernel);
}
灰度闭运算
//灰度闭运算,先膨胀在腐蚀,可以去除小黑点
inline void gray_closing_rect(const cv::Mat& gray_image, Mat& opened_image,int kernel_size) {
// 定义内核
cv::Mat kernel = cv::getStructuringElement(cv::MORPH_RECT, cv::Size(kernel_size, kernel_size));
// 执行闭运算
cv::morphologyEx(gray_image, opened_image, cv::MORPH_CLOSE, kernel);
}