如何在opencv中的高斯滤波器中实现大小为1的内核?

时间:2018-02-13 06:18:09

标签: python opencv gaussianblur

我正在尝试创建1像素内核:

blur = cv2.GaussianBlur(img, x, 0)

我在高斯滤波器中使用它:

SystemError: new style getargs format but argument is not a tuple

结果发生错误:

tinymce.activeEditor.editorUpload.blobCache

如何解决此错误?

1 个答案:

答案 0 :(得分:2)

您无法将内核传递给GaussianBlur函数。您必须传递内核大小。

所以x应该是一个像(5,5)或(3,3)等元组

内核大小值也应该是奇数和正数,并且可以不同。您不能使用大小(1,2),因为2是偶数。

如果你想看到高斯内核使用它:

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_recycler);

    recyclerView = (RecyclerView)findViewById(R.id.recycler_view);

    this.createDefaultRestaurants();

    restoAdapter = new RestaurantAdapter(restoList);
    RecyclerView.LayoutManager rLayoutManager = new LinearLayoutManager(getApplicationContext());
    recyclerView.setLayoutManager(rLayoutManager);
    recyclerView.setItemAnimator(new DefaultItemAnimator());
    recyclerView.setAdapter(restoAdapter);


}

EX:

cv2.getGaussianKernel(ksize, sigma[, ktype]) 

如果您想使用内核模糊图像,请使用:

kernel = cv2.getGaussianKernel(ksize=(1,1),sigma=2)

EX:

cv2.GaussianBlur(src, ksize, sigmaX[, dst[, sigmaY[, borderType]]])

检查this