Vector does not print completely - Python, Opencv

Asked

Viewed 36 times

0

I’m working on a Python project using Opencv, I’m running on Google Colab. I want to save the markers vector from an image of a segmentation method, but whenever I print the vector, it appears summarized. I have tried to convert it to String, but it remains summarized. How do I print it out completely?

Method that finds the Markers:

def markers():
  img = cv2.imread(imgNome)
  gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
  ret, thresh = cv2.threshold(gray,0,255,cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU)

 # noise removal
  kernel = np.ones((3,3),np.uint8)
  opening = cv2.morphologyEx(thresh,cv2.MORPH_OPEN,kernel, iterations = 2)

  # sure background area
  sure_bg = cv2.dilate(opening,kernel,iterations=3)

  # Finding sure foreground area
  dist_transform = cv2.distanceTransform(opening,cv2.DIST_L2,5)
  ret, sure_fg = cv2.threshold(dist_transform,0.7*dist_transform.max(),255,0)

  # Finding unknown region
  sure_fg = np.uint8(sure_fg)
  unknown = cv2.subtract(sure_bg,sure_fg)

  # Marker labelling
  ret, markers = cv2.connectedComponents(sure_fg)

  # Add one to all labels so that sure background is not 0, but 1
  markers = markers+1

  # Now, mark the region of unknown with zero
  markers[unknown==255] = 0

  markers = cv2.watershed(img,markers)
  #img[markers == -1] = [255,0,0]
  markersSTR = str(markers)
  return markersSTR

The way the vector is being printed:

 [[-1 -1 -1 ... -1 -1 -1]

 [-1  1  1 ...  1  1 -1]

 [-1  1  1 ...  1  1 -1]

 ...

 [-1  1  1 ...  2  2 -1]

 [-1  1  1 ...  2  2 -1]

 [-1 -1 -1 ... -1 -1 -1]]
  • The IDE is summarizing the vector because it is very large, many Ides, like Pycharm, have a vector viewer and dataframes. See this help page to check how to view in Pycharm. However, I personally prefer to use the matplotlib, which has a user interface in which you can see the color channel and each pixel position with the mouse. Not possible with the imshow opencv.

1 answer

1


Use numpy.set_printoptions at the beginning of your script:

import sys
import numpy as np
np.set_printoptions(threshold=sys.maxsize)

Browser other questions tagged

You are not signed in. Login or sign up in order to post.