• 最大最小值滤波


    最大最小值滤波

    最大最小值滤波是一种比较保守的图像处理手段,与中值滤波类似,首先要排序周围像素和中心像素值,然后将中心像素值与最小和最大像素值比较,如果比最小值小,则替换中心像素为最小值,如果中心像素比最大值大,则替换中心像素为最大值。一个Kernel矩阵为3X3的最大最小值滤波如下:

     

     

      //最大最小值滤波
            function maxMin(imgData, size) {
                pixelData = tmppixelData = imgData.data,
                    size = size || 3;
                for (var i = 0; i < canvas.height; i++) {
                    for (var j = 0; j < canvas.width; j++) {
                        var tempR = [],
                            tempG = [],
                            tempB = [];
                        for (var dx = 0; dx < size; dx++) {
                            for (var dy = 0; dy < size; dy++) {
                                var x = i + dx;
                                var y = j + dy;
                                var p = x * canvas.width + y;
                                if (!(dx == ~~(size / 2) && dy == ~~(size / 2))) {
                                    tempR.push(tmppixelData[p * 4 + 0])
                                    tempG.push(tmppixelData[p * 4 + 1])
                                    tempB.push(tmppixelData[p * 4 + 2])
                                }
                            }
                        }
                        tempR.sort();
                        tempG.sort();
                        tempB.sort();
                        var p = i * canvas.width + j;
                        pixelData[p * 4 + 0] = tmppixelData[p * 4 + 0] > tempR[tempR.length - 1] ? tempR[tempR.length - 1] : tmppixelData[p * 4 + 0] < tempR[0] ? tempR[0] : tmppixelData[p * 4 + 0];
                        pixelData[p * 4 + 1] = tmppixelData[p * 4 + 1] > tempG[tempG.length - 1] ? tempG[tempG.length - 1] : tmppixelData[p * 4 + 1] < tempG[0] ? tempG[0] : tmppixelData[p * 4 + 1];
                        pixelData[p * 4 + 2] = tmppixelData[p * 4 + 2] > tempB[tempB.length - 1] ? tempB[tempB.length - 1] : tmppixelData[p * 4 + 2] < tempB[0] ? tempB[0] : tmppixelData[p * 4 + 2];
                    }
                }
                imgData.data = pixelData;
                return imgData;
            }
    

      

  • 相关阅读:
    Nacos启动异常:failed to req API:/api//nacos/v1/ns/instance after all servers([127.0.0.1:8848])
    多节点集群思路
    内网dns配置
    MySQL集群配置思路
    pycharm常用快捷键
    2020年11月新版CKA考试心得
    JavaScript的Map、Set、WeakMap和WeakSet
    AJAX传输二进制数据
    linux性能监测与优化的指令
    八千字硬核长文梳理Linux内核概念及学习路线
  • 原文地址:https://www.cnblogs.com/ckAng/p/10904407.html
Copyright © 2020-2023  润新知