Просто начиная с cv2, я хочу дать начальное значение объекту, как в каком-то окне координат, и соединить все пиксели, которые могут находиться за пределами исходного поля координат, но соприкасаться с ним. Я начал с небольших тестов, чтобы получить представление о связанных компонентах:
im=cv2.imread('test.png', 0)
ret, thresh = cv2.threshold(im, 254, 255, cv2.THRESH_BINARY)
output = cv2.connectedComponentsWithStats(thresh, 4, cv2.CV_32S)
тогда
im=cv2.imread('test.png', 0)
ret, thresh = cv2.threshold(im, 254, 255, cv2.THRESH_BINARY)
thresh = cv2.bitwise_not(thresh)
output = cv2.connectedComponents(thresh, 4, cv2.CV_32S)
оба этих выходных массива, пока все хорошо, тогда я хотел увидеть фактическое выходное изображение со ссылкой на документы https://docs.opencv.org/3.0-beta/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html#connectedcomponentsconnectedComponentsWithStats(InputArray image, OutputArray labels, OutputArray stats, OutputArray centroids, int connectivity=8, int ltype=CV_32S)
и labels – destination labeled image
поэтому я изменил последнюю строку в небольшом коде, приведенном выше, к этому:
output = cv2.connectedComponents(thresh,"out_test.png" ,4, cv2.CV_32S)
и это дало мне ошибку, указанную в вопросе. Я также пробовал:
cv2.imwrite(dest_dir+"out_test.png", output)
и получил эту ошибку:
TypeError: img is not a numerical tuple
как я могу на самом деле визуализировать вывод, поскольку я не хочу подсчитывать капли (объекты), их размеры или что-то еще, я просто хочу, чтобы они росли из исходной области интереса, которую я даю.