Lou*_*uis 6 javascript csv algorithm math optimization
我正在尝试创建一种算法,以.csv格式检测和计算强度图中的死像素.我目前的方法是将我正在测试的像素的值除以右边的像素值(或者,如果在最右侧,则将左边的值除以).如果被除数小于某个阈值(当前为.9),那么我将其标记为死像素.
我的问题是,是否有更好/更有效的方法来计算像素是否已经死亡?
示例csv输出:
3183 3176 3207 3183 3212
3211 3197 3198 3183 3191
3193 3177 1135 3185 3176
3175 3184 3188 3179 3181
3181 3165 3184 3187 3183
Run Code Online (Sandbox Code Playgroud)
在该示例中,中间像素将是"死"像素.
效率
您需要至少查看每个像素一次,因此您的运行时间不可能超过当前的O(n),其中 n 是像素数。您的算法使用恒定量的内存,这也是最佳的。
但是,我不确定你的算法总是正确的。您有办法避免比较连续的坏点吗?输入示例:
3183 3176 1135 1135 3212
^ Not detected
Run Code Online (Sandbox Code Playgroud)
更准确的方法
我假设您采用相邻像素的强度来避免比较屏幕不同区域中的像素,因为屏幕的亮度可能不均匀分布。
避免漏报的一种方法是取附近几个像素的平均值,但如果该区域存在大量坏像素,则这可能不起作用。您可以尝试从小区域内的所有像素中取出最大值。这样,只要整个区域中的单个像素没有坏点,所有坏点都会被检测到。
您采样的像素数量取决于您对漏报的容忍度。