我正在尝试使用 OpenCV 执行图像侵蚀。我想这样做:假设我有四个不同的元素
S1 = [ 0 1 0, 0 1 0, 0 1 0 ]
S2 = [ 0 0 0, 1 1 1, 0 0 0 ]
S3 = [ 0 0 1, 0 1 0, 1 0 0 ]
S4 = [ 0 1 0, 1 1 1, 0 1 0 ]
我想在原始图像上使用这些元素执行四种不同的腐蚀:
E1 = I & S1
E2 = I & S2
E3 = I & S3
E4 = I & S4
其中“I”是原始图像,为简单起见,我使用“&”表示腐蚀。然后我想通过添加这四个来获得最终的侵蚀:
E = E1 + E2 + E3 + E4
但是在用opencv实现这些时,我在早期遇到了困难。我声明了这样的元素:
int S1[3][3] = { { 0, 1, 0 }, { 0, 1, 0 }, { 0, 1, 0 } };
int S2[3][3] = { { 0, 0, 0 }, { 1, 1, 1 }, { 0, 0, 0 } };
int S3[3][3] = { { 0, 0, 1 }, { 0, 1, 0 }, { 1, 0, 0 } };
int S4[3][3] = { { 0, 1, 0 }, { 1, 1, 1 }, { 0, 1, 0 } };
然后对于使用“cv::erode”,我对这些元素有困难,因为它们不是可接受的类型。我怎样才能使用这些元素来获得我想要的上述侵蚀?先感谢您。