自适应中值滤波我有一个问题,写自适应中值的代码。与opencv的C++
这是计算最小强度像素最大n值的最佳方法?现在
直到我读出的图像
for (int y = 0; y < h; y++)
{
uchar *ptr = (uchar*)(img->imageData + y * step);
for (int x = 0; x < w; x++){
printf("%u, ", ptr[x]);
}
printf("\n");
}
自适应中值滤波我有一个问题,写自适应中值的代码。与opencv的C++
这是计算最小强度像素最大n值的最佳方法?现在
直到我读出的图像
for (int y = 0; y < h; y++)
{
uchar *ptr = (uchar*)(img->imageData + y * step);
for (int x = 0; x < w; x++){
printf("%u, ", ptr[x]);
}
printf("\n");
}
对于矩形窗口的最大值和最小值的像素的每一个值,我会看van Herk's dilation algorithm,为灰度扩张对应的最大运营商,和灰度侵蚀到最小的操作员和一个矩形结构元素可能被分解成垂直和水平线。
对于中值滤波我会看moving histogram techniques。
对于你需要记录的第一像素的值,然后互相比较像素到它,存储新值,如果它分别是低/高最小/最大像素。 OpenCV提供cv::minmaxLoc以简化这一过程。
对于你需要的所有像素排序,选择中间的一个中值(一次排序,当然,寻找最小/最大是微不足道的,因为他们会在列表的任一端)。这更棘手,你有多远,什么不工作?
问题是什么? – DaveHogan
有什么问题?你能用更多的细节来描述它吗?你检查过你的算法吗?你有什么?你期望得到什么?你能写一些代码吗? – elyashiv
请提出具体问题。你在哪里遇到麻烦?你只是想找人把你的逻辑转换成代码?如果是这样,这不是它的网站。 –