作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个用 Matlab 编写的成像应用程序,需要使用 OpenCV 将其转换为 C++ 应用程序。但我似乎找不到一种简单的方法来用 OpenCV 模仿 medfilt2。
我尝试了 MedianBlur,但没有产生相同的结果。有人能给我任何关于这项任务的线索吗?
最佳答案
在我看来,这个 link应该有你需要的。但是,如果您想通过 m
窗口指定 n
,看起来您必须进行一些小的修改。
// Pick up window elements
int k = 0;
// Original: element window[9];
element window[n_win*m_win];
for (int j = m_win - 1; j < m_win; ++j)
for (int i = n_win - 1; i < n_win; ++i)
window[k++] = image[j * N + i];
// Order elements (only half of them)
// make sure (n_win*m_win)/2 is odd :-)
for (int j = 0; j < (n_win*m_win)/2; ++j)
{
// Find position of minimum element
int min = j;
for (int l = j + 1; l < n_win*m_win; ++l)
if (window[l] < window[min])
min = l;
// Put found minimum element in its place
const element temp = window[j];
window[j] = window[min];
window[min] = temp;
}
// Get result - the middle element
result[(m - 1) * (N - 2) + n - 1] = window[4];
关于c++ - 如何用OpenCV模拟Matlab的medfilt2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12535532/
嗨,Python 爱好者! 我目前正在研究信号过滤,并决定使用 SciPy。没什么特别的,只是日常工作的自动化。 所以,这是代码 from scipy.signal import medfilt pr
我是一名优秀的程序员,十分优秀!