基本概念

小概念
  • 中值滤波

中值滤波本质上是一种统计排序滤波器。

假设像素点的表示为x(I,j),对于每一个像素点,其领域R(假设为8)的所有像素点g(x+k,y+k)值连带自身进行排序,假设然后将排序后中间的值定位g'(x,y),则将g'(x,y)的值替换掉x(I,j)的值。

优点及用途:

中值滤波所带来的模糊效应比较低,其典型应用就是消除图像的椒盐噪声。

  • 相位和幅度

相位谱决定了图像结构,而图像中整体灰度分布的特性,如明暗,灰度变换趋势等则在比较大的程度上取决于对应的幅度谱,因为幅度谱反映了图像整体上各个方向的频率分量的相对强度。

  • 灰度化
    图像转为灰度可以使用以下的公式去处理:

$$ \begin{pmatrix} 0.114 & 0.587 & 0.229 \end{pmatrix} *\begin{pmatrix} R\\ G\\ B \end{pmatrix} $$

  • 插值方法
    使用插值可以实现图像的缩放,比如512512 -> 10241024
/* 最近邻插值 */
//implement with OpenCV
warpAffine(....)
Mat A = imread("E:\\te2.jpg", 1); // 此处为512*512
Mat B(780, 1024, CV_8UC3);
for (int i = 0; i < B.rows; i++)
{
    for (int j = 0; j < B.cols; j++)
    {
        int posx = floor(j / (float)B.cols * (A.cols - 1) + 0.5f);
        int posy = floor(i / (float)B.rows * (A.rows - 1) + 0.5f);
        // cout << "Posx,y:(" << posx << "," << posy << ")"<<endl;
        B.at<Vec3b>(i, j) = A.at<Vec3b>(posy, posx);
        // B.at<Vec3b>(i, j)[1] = A.at<Vec3b>(posy, posx)[1];
        // B.at<Vec3b>(i, j)[2] = A.at<Vec3b>(posy, posx)[2];
    }
}
imshow("IMG", B);
最后修改:2023 年 08 月 02 日
如果觉得我的文章对你有用,请随意赞赏