图像处理中知识点02
本文记录一下在进行图片处理过程中的一些知识点和bug:
1.使用Skimage处理图片时,出现以下报错:
其原因在于做图像转换时,如image=io.imread(path)
,要求3通道的数据,但是读取的图片包含第4个通道alpha通道,粗暴的解决方法为image = io.imread(path)[:, :, :3]
。
2.出现以下报错:参考资料:
其原因在于索引只能是整数,:
等。
参考资料:
3.SuperPixel超像素分割SLIC算法实现
4.Moduel 'cv2' has no attribute 'ximgproc'。其原因为安装了多个opencv版本如同时安装了opencv-python和opencv-contrib-python或者只安装了opencv-python。解决方案为卸载已经安装的opencv包,只安装opencv-contrib-python,后者相比opencv-python拥有更完整的功能:参考资料:
1 | pip uninstall opencv-python |
5.`cv2.grabcut`:该算法为经典传统算法GrabCut的实现,其利用图像中的纹理(颜色)信息和边界(反差)信息,只需要少量的用户交互操作即可得到较好的分割结果。 该函数的完整调用形式为,下面对各参数进行说明: `cv.grabCut(img, mask, rect, bgdModel, fgdModel, iterCount[, mode]) ->mask, bgdModel, fgdModel` - `img`:输入的8-bit 3-channel图像 - `mask`:input/output的8-bit单通道mask,当模式设为`GC_INIT_WITH_RECT`时会被函数初始化,其设置有多个选项[GrabCutClasses](https://docs.opencv.org/4.x/d7/d1b/group__imgproc__misc.html#gad43d3e4208d3cf025d8304156b02ba38 "class of the pixel in GrabCut algorithm") - `rect`:包含分割物体的ROI (Region Of Interest)。ROI之外的像素被标记为显著的背景,只在`mode=GC_INIT_WITH_RECT`时使用。 - `bgdModel`:background model的临时数组,当你处理同一张图片时不要更改它 - `fgdModel`:foreground modele的临时数组,当你处理同一张图片时不要更改它 - `iterCount`:在返回结果之前,算法迭代的次数。注意结果可以通过`mode=GC_INIT_WITH_MASK`或者`mode=GC_EVAL` refine。 - `mode`:选项[GrabCutClasses](https://docs.opencv.org/4.x/d7/d1b/group__imgproc__misc.html#gad43d3e4208d3cf025d8304156b02ba38 "class of the pixel in GrabCut algorithm")。 下面是依据参考资料8对grabcub算法的调用:参考资料:
1 |
|
1 | try: |
1 | # 膨胀 |
参考资料: