penso che si può regolare il contrasto qui in due modi:
1) Histogram Equalization :
ma quando ho provato questo con la vostra immagine, risultato non è stato come previsto. Vedi qui sotto:
2) Thresholding:
Qui, i confrontato ciascun valore di pixel di ingresso con un valore arbitrario (che ho preso 127
). Di seguito è riportata la logica che ha una funzione integrata in opencv. But remember, output is Binary image, not grayscale as you did.
If (input pixel value >= 127):
ouput pixel value = 255
else:
output pixel value = 0
E sotto è il risultato che ho ottenuto:
Per questo, è possibile utilizzare Threshold function o compare function
3) Se si è obbligatorio ottenere l'immagine in scala di grigi come output, fare come segue:
(codice è in OpenCV-Python, ma per ogni funzione, corrispondenti funzioni C sono disponibili in opencv.itseez.com)
for each pixel in image:
if pixel value >= 127: add 'x' to pixel value.
else : subtract 'x' from pixel value.
('x' è un valore arbitrario.) Così la differenza tra i pixel chiari e scuri aumenta.
img = cv2.imread('brain.jpg',0)
bigmask = cv2.compare(img,np.uint8([127]),cv2.CMP_GE)
smallmask = cv2.bitwise_not(bigmask)
x = np.uint8([90])
big = cv2.add(img,x,mask = bigmask)
small = cv2.subtract(img,x,mask = smallmask)
res = cv2.add(big,small)
E sotto è il risultato ottenuto:
È possibile regolarli in opencv. Ma sarebbe più utile se potessi aggiungere un'immagine, quindi spiegare quello che vuoi. –
@Abid Rahman K Immagini aggiunte .. – edsonlp1
La seconda immagine che si desiderava come risultato? Se è così, come avete fatto? lo stesso può essere fatto in Opencv –