#python #threshold #image-thresholding
#python #пороговое значение #изображение-пороговое значение
Вопрос:
Мне нужно пороговое значение моего изображения без использования функции OpenCV.
Я знаю только этот способ, но в данном случае я использую функцию cv2.threshold из OpenCV:
img = cv2.imread('filename', 0)
_, thresh = cv2.threshold(img,127,255,cv.THRESH_BINARY)
Как я могу кодировать пороговое значение без использования функции cv2.threshold.
Я попробовал это:
def thresholdimg(img, n):
img_shape = img.shape
height = img_shape[0]
width = img_shape[1]
for row in range(width):
for column in range(height):
if img[column, row] > s:
img[column, row] = 0
else:
img[column, row] = 255
return
Где n равно 127
Заранее спасибо.
Комментарии:
1. Поскольку StackOverflow не является сервисом для написания кода, вам следует отредактировать свою честную попытку кодирования этого в свой вопрос.
2. Эта попытка не для какой-либо службы, я новичок в этой области, и я пытаюсь чему-то научиться. Я написал здесь только потому, что мне нужна помощь.
3. Похоже, вы все еще планируете использовать OpenCV для чтения / создания изображения. Так почему бы также не использовать OpenCV для порогового значения? Но если вы хотите использовать только библиотеки более низкого уровня, вы можете достичь этого с помощью комбинации Pillow и NumPy. Смотрите Эти для некоторых идей: note.nkmk.me/en/python-numpy-image-processing и note.nkmk.me/en/python-numpy-opencv-image-binarization
Ответ №1:
Вы можете использовать numpy для порогового значения в Python без OpenCV.
image[image>127] = 255
image[image!=255] = 0
если изображение представляет собой изображение в оттенках серого.
Ответ №2:
Вы можете установить пороговое значение следующим образом:
thresholdIMG = image[:, :, <color channel>] > <threshold>
Но если вы собираетесь сделать это с изображением RGB, вы получите странные результаты.