图像处理 – 形态命中小姐变换

我正在使用OpenCV作为我的图像处理算法,并试图修复字符中的参差不齐的边缘.我读到形态Hit-Miss变换是一个非常好的解决方案.有没有这个开源实现?

或者是否有任何其他算法可用于修复不规则边缘?

最佳答案 可以在
here找到一个简单的命中和未命中的实现:

#include <opencv2/imgproc/imgproc.hpp>

// Hit-or-miss transform function
void hitmiss(cv::Mat& src,    // Source image, 8 bit single-channel matrix
             cv::Mat& dst,    // Destination image 
             cv::Mat& kernel) // Kernel. 1=foreground, -1=background, 0=don't care
{
    CV_Assert(src.type() == CV_8U && src.channels() == 1);

    cv::Mat k1 = (kernel == 1) / 255;
    cv::Mat k2 = (kernel == -1) / 255;

    cv::normalize(src, src, 0, 1, cv::NORM_MINMAX);

    cv::Mat e1, e2;
    cv::erode(src, e1, k1);
    cv::erode(1 - src, e2, k2);

    dst = e1 & e2;
}

但我认为你只能通过扩张解决问题,如page 7 of this slide中的例子(它取自Gonzales等人的“数字图像处理”一书)

点赞