Пороговое значение без использования OpenCV

#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, вы получите странные результаты.