Il mio imagem ha un "riflesso di luce", i due primi zeri sull'immagine hanno una luce diversa dal resto dell'immagine. Quando lo converto in un'immagine binaria, questa parte diventa bianca e ho bisogno di ottenere il contorno esatto del numero e questo ostacola. Posso risolvere questo problema usando OpenCV?Cosa posso fare per eliminare una "luce di riflessione" di un'immagine? using OpenCV
l'immagine originale https://docs.google.com/file/d/0BzUNc6BOkYrNNlE3U04wWEVvVE0/edit?usp=sharing
la versione binaria https://docs.google.com/file/d/0BzUNc6BOkYrNeEE0U3NvOElqa1E/edit?usp=sharing
Se io aumento il valore della soglia, perdo i numeri sul lato destro dell'immagine. Il mio codice:
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main (int argc, char **argv)
{
Mat im_gray = imread("img2.jpg",CV_LOAD_IMAGE_GRAYSCALE);
Mat im_rgb = imread("img2.jpg");
cvtColor(im_rgb,im_gray,CV_RGB2GRAY);
Mat img_bw = im_gray > 90;
imwrite("image_bw2.jpg", img_bw);
return 0;
}
Utilizzare la soglia adattativa – Blender
È possibile utilizzare una maschera. Più un pixel è bianco, più diventa nero. Cioè si sostituiscono le aree di colore marrone e rosso con il nero. – William