小编use*_*996的帖子

OpenCV,均衡图像轮廓的直方图

我知道可以均衡图像的直方图,例如:

equalizeHist(image, image);
Run Code Online (Sandbox Code Playgroud)

如果我愿意,我可以定义一个ROI并在图像中仅对此ROI进行均衡:

Mat aux3 = image.clone();
equalizeHist(image(Rect(0,100, 200,200)), aux3(Rect(0,100, 200,200)));
Run Code Online (Sandbox Code Playgroud)

我现在想做的(并且我不知道是否可能)是使用点向量(cv :: vector轮廓)定义一个Roi(轮廓)并均衡该roi(这个roi并不总是会是一个矩形)

因此,这里的问题是:

使用openCV函数是否可以均衡不是矩形的图像部分?

c++ opencv image-processing

3
推荐指数
1
解决办法
1849
查看次数

c ++删除动态矩阵

我有这个代码来分配和初始化:

nw = new int*[V];

for (w = 0; w < V; w++) {

nw[w] = new int[K];

for (k = 0; k < K; k++) 

  nw[w][k] = 0;
}
Run Code Online (Sandbox Code Playgroud)

这是为了释放记忆:

if (nw) {
 for (int w = 0; w < V; w++) {  
  if (nw[w]) 
delete nw[w];      
}
Run Code Online (Sandbox Code Playgroud)

程序编译并运行,但是,当它尝试释放内存时,会失败.该程序并不总是以相同的w值失败.

有任何想法吗?

c++ memory-management dynamic matrix

1
推荐指数
1
解决办法
9835
查看次数

使用opencv手动应用中值滤波器,与medianBlur函数的差异

当我像这样应用中值滤波器时:

Mat medianFilter;
medianBlur(histEqu, medianFilter, 3);
Run Code Online (Sandbox Code Playgroud)

如果我应用中值滤波器,我期望得到相同的结果:

Mat manualMedianFiler;
    float factor = 1 / 9.0;
    Mat kernelMedian = (Mat_<float>(3, 3) <<
        factor, factor, factor,
        factor, factor, factor,
        factor, factor, factor);
    filter2D(histEqu, manualMedianFiler, CV_8U, kernelMedian, Point(-1,-1), 0, 4);
Run Code Online (Sandbox Code Playgroud)

所得矩阵相似,但不相等。难道我做错了什么?哪种是应用中值滤波器的正确方法?

c++ opencv filter median

1
推荐指数
1
解决办法
4923
查看次数