opencv程序数据到excel表

时间:2015-05-15 01:34:11

标签: python excel opencv

我目前正在OSX上使用opencv和python进行颜色图像过滤的项目。我已经制作了一个功能正常的程序,当它找到特定颜色的对象时,它会在终端中打印一条消息,说明"找到框"以及该帧中的像素大小。

我的问题是,当我尝试使用xlwrt在excel表中写入此数据时,它会打印出像素的大小,但它会在同一个单元格中不断被覆盖。我希望我的所有像素大小值都会出现在像素列集中。

以下是该计划的一部分

  kernel = np.ones((31,31),np.uint8);
  opening=cv2.morphologyEx(mask,cv2.MORPH_OPEN,kernel,0);
  kernel = np.ones((17,17),np.uint8);
  dilation=cv2.dilate(opening,kernel,iterations=2);
  opening=cv2.morphologyEx(mask,cv2.MORPH_OPEN,kernel,2);
  edges = cv2.Canny(mask,100,255)
  contours,hierarchy=cv2.findContours(opening,1,cv2.CHAIN_APPROX_SIMPLE);
  res = cv2.bitwise_and(frame,frame, mask= dilation)
  #contours=np.zeros(mask.shape,np.uint8);
  areas = [cv2.contourArea(c) for c in contours]
  ar = 0.0
  i = 0

  book = xlwt.Workbook(encoding="utf-8")

  sheet1 = book.add_sheet("Sheet 1", cell_overwrite_ok=False)

  sheet1.write(0, 0, "Frame")
  sheet1.write(0, 1, "Pixel")

  list1 = [0]

  for a in areas:
    print(a);
    i += 1
    ar=float(a)
    list1.append(ar)
    sheet1.write(i,0,ar)
    book.save("/Users/canogerardo55/Desktop/trial.xls")
    if (a>10000):
        print("found box");
        break;

0 个答案:

没有答案