Skimage实现形态学重构开运算结果异常,求问题排查与修正方案
错误原因
- 重构方法选择错误:形态学重构开运算的实现逻辑是先对原图做腐蚀得到标记图像,再以原图为掩码对标记图像执行测地膨胀,你代码中调用
morphology.reconstruction时指定了method='erosion',属于逻辑错配。 - 多余的图像反转操作:针对亮目标的标准重构开运算不需要对原图和标记图像做反色处理,反色操作仅适用于暗目标的重构运算场景。
修正后代码
import numpy as np from skimage import morphology import cv2 as cv img = cv.imread('images/Initial_Image.jpg', cv.IMREAD_GRAYSCALE) se = np.ones((40,40), np.uint8) # 腐蚀得到标记图像 marker = morphology.erosion(img, se) # 以原图为掩码执行测地膨胀得到重构开运算结果 Opening_recon = morphology.reconstruction(marker, img, method='dilation') # 输出各步骤结果 cv.imwrite('images/01_Grayscale.jpg', img) # Step 1 - 灰度图像 cv.imwrite('images/02_marker.jpg', marker) # Step 2 - 标记图像 cv.imwrite('images/03_Opening_recon.jpg', Opening_recon) # Step 3 - 重构开运算结果
内容的提问来源于stack exchange,提问作者ussrback
相关产品推荐
相关产品推荐

