Помогите настроить скрипт на питоне.

Не знаете, где задать вопрос? Задавайте здесь.
Ответить
_taras_
Активный участник
Сообщения: 186
Зарегистрирован: 28 июл 2018, 08:40
Репутация: 12
Откуда: Киев

Помогите настроить скрипт на питоне.

Сообщение _taras_ » 04 сен 2021, 23:15

Приветствую всех!
Имеется скрипт, который считает кол-во пикселей на фото. Используется для определения площади листовой пластинки. Применялся на убунте 12.04
Рабочий ноут приказал долго жить, а на новой машине (убунта 20.04) работать не хочет, хотя нужный пакет (Python-opencv) установлен.
Сам скрипт

Код: Выделить всё

import os
import cv2
#import matplotlib.pyplot as plt
import numpy as np
import random
cx0,cx1,cy0,cy1 = 50,100,50,100 
scale = 0.2


for f in os.listdir("./in") :
	img = cv2.imread("in/"+f)		
	img = img[cy0:-cy1,cx0:-cx1] 
	img_orig = cv2.resize(img,None,fx=scale, fy=scale, interpolation = cv2.INTER_CUBIC)
	img = cv2.cvtColor(img_orig, cv2.COLOR_BGR2GRAY)
	img = cv2.GaussianBlur(img,(3,3),0)
	
	ret,thresh = cv2.threshold(img,100,200,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
	h, w = thresh.shape[:2]
	cv2.line(thresh,(0,0),(0,h),(255,255,255),2)
	cv2.line(thresh,(0,0),(w,0),(255,255,255),2)
	cv2.line(thresh,(w,h),(0,h),(255,255,255),2)
	cv2.line(thresh,(w,h),(w,0),(255,255,255),2)
	cv2.imshow('t',thresh)

	contours,hierarchy = cv2.findContours(thresh, 1, 2)
	
	
	contours = [cnt for cnt in contours if cv2.contourArea(cnt)>2500*scale*scale]

	for cnt in contours:
		cv2.drawContours(img_orig, [cnt], -1, (random.randint(0,255),random.randint(0,255),random.randint(0,255)), 2)

	for cnt in contours :
		mask = np.zeros(img.shape,np.uint8)
		cv2.drawContours(mask,[cnt],0,255,-1)
	areas = [cv2.contourArea(cnt) for cnt in contours]
	areas.sort()
	areas.reverse()
	
	print f, areas
	
	cv2.imshow('image',img_orig)
	cv2.waitKey(0)
	cv2.destroyAllWindows()
ежели запускаю командой python3.8 leaf.py >22.txt получаю

Код: Выделить всё

File "leaf.py", line 40
    print f, areas
          ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(f, areas)?
taras@taras:~$ python3.8 leaf.py >22.txt
  File "leaf.py", line 40
    print f, areas
          ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(f, areas)?

freeExec
Гуру
Сообщения: 1195
Зарегистрирован: 23 апр 2011, 10:32
Репутация: 205
Откуда: Ульяновск

Re: Помогите настроить скрипт на питоне.

Сообщение freeExec » 05 сен 2021, 08:38

Предлагает же аргументы взять в скобки.

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Помогите настроить скрипт на питоне.

Сообщение Максим Дубинин » 05 сен 2021, 14:24

в третьем питоне надо print(...)
скрипт для второго написан
пристегивайтесь, турбулентность прямо по курсу

_taras_
Активный участник
Сообщения: 186
Зарегистрирован: 28 июл 2018, 08:40
Репутация: 12
Откуда: Киев

Re: Помогите настроить скрипт на питоне.

Сообщение _taras_ » 05 сен 2021, 14:39

Огромное спасибо ответившим!
Заговорило (С)!

Ответить

Вернуться в «Я новичок!»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей