powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как выполнять Python в Java
14 сообщений из 14, страница 1 из 1
Как выполнять Python в Java
    #39239204
Dimmf28
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу я делать вот такую вот задачку, у меня есть скрипт на Python что переберает фотки в папке, анализирует лица на фотках и делает для них отдельные изображения с лицами, далее уже с этими изображениями я собираюсь работать в Java, по сути мне необходимо все го лиш чтоб при выполнении моего java приложения также выполнялся и скрипт Python вначале до начала работы логики на Java, но я не понимаю как его запихнуть в Java приложение вот скрипт на Python ниже:
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
import numpy as np
import cv2
import sys
import glob 

cascPath = "haarcascade_frontalface_default.xml"

# Create the haar cascade
faceCascade = cv2.CascadeClassifier(cascPath)

files=glob.glob("*.jpg")   
for file in files:

    # Read the image
    image = cv2.imread(file)
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

    # Detect faces in the image
    faces = faceCascade.detectMultiScale(
        gray,
        scaleFactor=1.1,
        minNeighbors=5,
        minSize=(30, 30),
        #flags = cv2.cv.CV_HAAR_SCALE_IMAGE
        flags=0
    )

    print "Found {0} faces!".format(len(faces))

    # Crop Padding
    left = 10
    right = 10
    top = 10
    bottom = 10

    # Draw a rectangle around the faces
    for (x, y, w, h) in faces:
        print x, y, w, h
        image  = image[y-top:y+h+bottom, x-left:x+w+right]
         
        cv2.imwrite("cropped_{1}_{0}".format(str(file),str(x)), image)  
      

        # Dubugging boxes
        cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2)
    

    #print "cropped_{1}{0}".format(str(file),str(x))
    
...
Рейтинг: 0 / 0
Как выполнять Python в Java
    #39239228
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вам надо запихнуть питоновый скрипт в джаву или выполнить код на Питоне перед котом на Джаве?

Если первое, то Jyton, но возникают вопросы наличия всех импортируемых модулей.
Если второе, то просто *.bat / *.sh
...
Рейтинг: 0 / 0
Как выполнять Python в Java
    #39239235
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimmf28,

https://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html

Можно, конечно, и Jython попробовать. Но, боюсь, можно выхватить несовместимостей версии или проблем с импортом.
...
Рейтинг: 0 / 0
Как выполнять Python в Java
    #39239313
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimmf28, а можно-ли этот код портировать на Java? Насколько я понимаю OpenCV также далёк от Питона как и Java.

http://docs.opencv.org/2.4/doc/tutorials/introduction/desktop_java/java_dev_intro.html
...
Рейтинг: 0 / 0
Как выполнять Python в Java
    #39239667
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimmf28,

Правильный способ - переписать ваш код полностью на Java.
Правильный способ - оформить код питона в виде микросервиса. И потом вызывать мкиросервис в Java.

Не правильный способ воспользоваться, например, jyton , или вызывать код Питона из Java как внешнее приложение.
...
Рейтинг: 0 / 0
Как выполнять Python в Java
    #39239865
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,

+1

На данном этапе я тоже голосую за микро-сервис. Это действительно будет быстрый старт.
А потом конечно подпилить напильником реализацию.
...
Рейтинг: 0 / 0
Как выполнять Python в Java
    #39239881
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulПравильный способ - оформить код питона в виде микросервиса. И потом вызывать мкиросервис в Java.

Угу, а он гарантировано потокобезопасный? А то будет как с R.

mad_nazgulНе правильный способ воспользоваться, например, jyton , или вызывать код Питона из Java как внешнее приложение.
Мистер категоричность? С вади пример берешь?
...
Рейтинг: 0 / 0
Как выполнять Python в Java
    #39239890
Dimmf28
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,

(Правильный способ - оформить код питона в виде микросервиса)

Можете пример мне какой то показать
...
Рейтинг: 0 / 0
Как выполнять Python в Java
    #39239891
Partisan M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazkowiczУгу, а он гарантировано потокобезопасный? А то будет как с R.

Казалось бы, причём тут потоки и R.
...
Рейтинг: 0 / 0
Как выполнять Python в Java
    #39239901
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczУгу, а он гарантировано потокобезопасный? А то будет как с R.

Это интересно но для задачи вторично. Если он действительно потоко-опасный то и будет
опасным через любые другие интерфейсы сопряжения. А если автору "чето пребирать в папке"
дык это 1 job. Singleton типа.
...
Рейтинг: 0 / 0
Как выполнять Python в Java
    #39239911
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Partisan MКазалось бы, причём тут потоки и R.
Однопоточные микросервисы? R это классический пример, что когда из тулзы надо сделать сервис, то приходится запускать по одному процессу на поток, если тулза вдруг не рассчитана на многопоточность.
...
Рейтинг: 0 / 0
Как выполнять Python в Java
    #39239916
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЭто интересно но для задачи вторично. Если он действительно потоко-опасный то и будет
опасным через любые другие интерфейсы сопряжения. А если автору "чето пребирать в папке"
дык это 1 job. Singleton типа.
Ну, что за чушь? Микросервис - один процесс на все запросы. ProcessBuilder - новый процесс на каждый запрос.
...
Рейтинг: 0 / 0
Как выполнять Python в Java
    #39239919
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimmf28mad_nazgul,

(Правильный способ - оформить код питона в виде микросервиса)

Можете пример мне какой то показать
Удачи вам с такими советчиками.
...
Рейтинг: 0 / 0
Как выполнять Python в Java
    #39240017
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczНу, что за чушь? Микросервис - один процесс на все запросы. ProcessBuilder - новый процесс на каждый запрос.
Блажкович! Дружище ... ну не говорил я про ПроцессБилдер.

Ладно забудь проехали вобщем.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как выполнять Python в Java
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]