Извините, у меня нет java, поэтому я просто пробую некоторые методы в python и могу получить желаемый результат, который вы хотите. Надеюсь, это поможет вам.
import cv2
import numpy as np
image = cv2.imread("1.png")
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
_,thresh = cv2.threshold(gray,100,255,cv2.THRESH_BINARY)
cv2.imshow("thresh",thresh)
blur = cv2.GaussianBlur(gray,(5,5),0)
ret3,otsu = cv2.threshold(blur,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
cv2.imshow("otsu",otsu)
adaptive_thresh = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 29, 30)
cv2.imshow("adaptive_thresh",adaptive_thresh)
cv2.imshow("img",image)
cv2.waitKey(0)
cv2.destroyAllWindows()
Далеко от преимуществ использования потока по процессу, как:
Преимущества:
, Рассматривают немного недостатков также:
относительно важной части Вашего вопроса, "Когда я должен использовать поток?"
Хорошо необходимо рассмотреть немного тех, что потоки не должны изменять семантику программы. Они просто изменяют синхронизацию операций. В результате они почти всегда используются в качестве изящного решения связанных с производительностью проблем. Вот некоторые примеры ситуаций, где Вы могли бы использовать потоки:
Вы предпочли бы несколько потоков по нескольким процессам по двум причинам:
Пример:
Приложения с графический интерфейсами пользователя обычно используют один поток для GUI и других для фонового вычисления. Программа проверки правописания в MS Office, например, является отдельным потоком от того, выполняющего интерфейс Офисного пользователя. В таких приложениях, с помощью нескольких процессов вместо этого привел бы к более медленной производительности и коду, который это жестко, чтобы написать и поддержать.
Я предполагаю, что Вы уже знаете о необходимости в потоке или процессе таким образом, я сказал бы, что главной причиной отобрать одну другой будет совместное использование данных.
Использование процесса означает, что Вам также нужна Коммуникация процесса Интера (IPC) для вкладывания данных и из процесса. Это - хорошая вещь, если процесс должен быть изолирован все же.
Вы уверенный не походите на новичка. Это - превосходное наблюдение, что процессы, во многих отношениях, более изящны. Потоки являются в основном оптимизацией для предотвращения слишком многих переходов или слишком большой коммуникации между пространствами памяти.
Поверхностно потоки использования могут также казаться, что это делает Вашу программу легче читать и записать, потому что можно совместно использовать переменные и память между потоками свободно. На практике, выполнение, которое требует, чтобы очень внимательное отношение избежало условий состязания или мертвых блокировок.
существуют ядра операционной системы (прежде всего L4) что попытка очень трудно для повышения эффективности межпроцессного взаимодействия. Для таких систем можно было, вероятно, привести убедительный аргумент, что потоки бессмысленны.
В дополнение к другим ответам, обслуживание и развертывание одного процесса намного проще, чем наличие нескольких исполняемых файлов.
Можно было бы использовать несколько процессов / исполняемых файлов для обеспечения четко определенного интерфейса / разделения, так что одну или другую часть можно было бы повторно использовать или повторно реализовать легче, чем сохранение всех функций в одном процессе.