Python-Opencv分水岭标记

时间:2014-05-09 04:40:24

标签: python opencv

我正在尝试创建基于Web的前台提取服务(类似于clippingmagic.com)。

我正在使用基于标记的分水岭图像分割(opencv,python)。 我正在使用sketch.js来允许用户在图像上绘制标记。

我需要从我的PHP代码中调用python脚本。 以下是脚本需要执行的操作:

  1. 读取上面绘有标记的图像。
  2. 创建一个整数矩阵,其中不同颜色的标记用不同的整数标记。
  3. 将标记矩阵和输入图像输入分水岭算法并将输出存储到本地文件。
  4. 提取标有相应标记的前景。
  5. 向用户显示输出。
  6. 我在第2步遇到问题。

    到目前为止,这是我的代码

    #!/usr/bin/env python
    
    import numpy as np
    import cv2
    from common import Sketcher
    
    img_m = cv2.imread('1_m.jpg'); //my image which has colored marks on it
    
    h, w = img.shape[:2]
    markers = np.zeros((h, w), np.int32)
    
    cv2.imshow("Image",img_m);
    
    //trying to put '1' at all places where image is marked with color (179,230,29)
    markers = np.where((img_m == [179,230,29]),1,0)
    //trying to put '2' at all places where image is marked with color (238,27,34)
    markers = np.where((img_m == [238,27,34]),2,0)
    
    cv2.watershed(img, markers) //gives me error "markers should be 1-channel 32-bit image"
    
    cv2.waitKey(50)
    

    有人可以帮我这个吗?感谢。

0 个答案:

没有答案