Reflexiones sobre la imagen transformada de Fourier se guarda como una solución de negro

problemas de diseño de planes de estudio se encontraron entrar aquí a escribir sobre ...... Además, parece mucho tiempo no escribió un título que está demasiado ocupado ...... ...... ...... marchita

    En estos días se hacen diseño curricular, desarrollo de software es uno de los principales de procesamiento de imágenes, entonces la cantidad de los procesos básicos responsables de la transferencia de imágenes es el lado del teléfono móvil, el lado del servicio recibe y llama al programa de procesamiento de imagen Pitón apropiada, tratar, y después del tratamiento de nuevo al teléfono y mostrar la imagen.

    Cuando el programa se consigue siempre encuentro pitón esta situación, es para salvar la imagen del tiempo de procesamiento original siempre menudo se convierte en negro, si desea ver la imagen después de la transformación, siempre en la necesidad de imshow matplotlib.pyplot para ver la imagen normal, y, si se utiliza matplotlib.pyplot savefig para ser salvo, no será el marco para la imagen final procesamiento, la preservación y procesamiento de la calidad de la imagen no es buena, y no coincide con el software que he desarrollado la intención original, por lo yo quería encontrar una manera que no es no puede guardar la imagen matplotlib.pyplot puede resolver los problemas negros.

    Tenía que ir en línea para encontrar una solución que satisfaga mis necesidades, los resultados miraron a su alrededor con todo el matplotlib.pyplot de savefig ...... ningún fruto, sólo se resolvió en sí!

    Tengo aquí es la transformada de Fourier, por ejemplo, el procesamiento de imágenes está por debajo de este.

clip_image002

    Al principio, nos ocupamos de este programa y guardar la imagen.

1  importación cv2
 2  
3  importación numpy como np
 4  
5  de matplotlib importación pyplot como plt
 6  
7 img = cv2.imread ( ' E: //report_pic//test.jpg ' , 0)
 8  
9 f = np.fft.fft2 ( img)
 10  
11 fshift = np.fft.fftshift (f)
 12  
13 s1 = np.log (np.abs (fshift))
 14  
15 fimg = np.log (np.abs (f))
 16  
17 fimg = np. abs (s1)
 18  
19 cv2.imwrite (' E: //report_pic//ntest.jpg ' , fimg)
Ver código

 

    Después del procesamiento es completa para ver las imágenes, por lo que se encontró lo siguiente

clip_image004

    Era fuerza relativamente ignorante, con el fin de encontrar el problema, la salida de la matriz de transformación, de la siguiente manera,

1  importación cv2
 2  
3  importación numpy como np
 4  
5  de matplotlib importación pyplot como plt
 6  
7 img = cv2.imread ( ' E: //report_pic//test.jpg ' , 0)
 8  
9 f = np.fft.fft2 ( img)
 10  
11 fshift = np.fft.fftshift (f)
 12  
13 s1 = np.log (np.abs (fshift))
 14  
15  de impresión ( " fshift = " )
 16  
17  de impresión (fshift)
 18 
19 fimg = np.log (np.abs (f))
 20  
21 fimg = np.abs (s1)
 22  
23  de impresión ( " len (fimg) = " )
 24  
25  de impresión (len (fimg))
 26  
27  de impresión ( " len (fimg [0]) = " )
 28  
29  de impresión (len (fimg [0]))
 30  
31  de impresión ( " fimg = " )
 32  
33  de impresión (fimg)
 34  
35 cv2.imwrite ( ' E: // report_pic / /ntest.jpg' , Fimg)
Ver código

 

    La siguiente salida del resultado,

clip_image006

    De hecho, ha habido fimg encontró el problema - los valores de gris son muy bajos, el valor de gris de contacto 0 cuando la pantalla es de color negro. Así que guarda la imagen también comprende la razón para el negro - imagen de valores de gris en sí es muy baja. Sin embargo, la imagen que necesitamos es un espectro Sí, un valor tan bajo, véase también no lo ve?

    Con el fin de resolver el "aspecto" del problema, he utilizado por primera vez el máximo-mínimo normalizado, entonces el valor de gris de cada normalizado multiplicando el valor máximo de escala de grises 255, conseguimos lo que queremos ", se puede ver ver el "espectro de! Código de abajo,

1  # de codificación: utf-8 
2  
3  importación cv2
 4  
5  importación numpy como np
 6  
7  de matplotlib importación pyplot como plt
 8  
9 img = cv2.imread ( ' E: //report_pic//test.jpg ' , 0)
 10  
11 f = np.fft.fft2 (IMG)
 12  
13 fshift = np.fft.fftshift (f)
 14  
15 s1 = np.log (np.abs (fshift))
 16  
17  # print ( "fshift =") 
18  
19  # impresión (fshift)
20  
21 fimg = np.log (np.abs (f))
 22  
23 fimg = np.abs (s1)
 24  
25  # de impresión ( "len (fimg) =") 
26  
27  # de impresión (len (fimg)) 
28  
29  # print ( "len (fimg [0]) =") 
30  
31  # de impresión (len (fimg [0])) 
32  
33  # print ( "fimg =") 
34  
35  # de impresión (fimg) 
36  
37 cv2.imwrite ( ' E: //report_pic//ntest.jpg ' , fimg)
 38  
39 maxx = -1
 40  
41 minn = 100000
42  
43  para i en rango (len (fimg)):
 44  
45  si maxx < max (fimg [i]):
 46  
47          maxx = max (fimg [i])
 48  
49  si min> min (fimg [i]):
 50  
51          minn = min (fimg [i])
 52  
53  # de impresión (Maxx, Minn) #fimg里的最大最小灰度值
54  
55  para i en rango (len (fimg)):
 56  
57  para j en rango (len (fimg [i])):
 58  
59          fimg [i] [j] = 255 * (fimg [i] [j] -minn) / (Maxx-Minn)
 60  
61 cv2.imwrite ( ' E: //report_pic//rtest.jpg ' , fimg)
Ver código

 

    El resultado está procesando la imagen de abajo, podemos ver muy claramente encontrado!

clip_image008

    En cuanto al caso de la otra de procesamiento de imágenes para guardar "todo negro" , si se trata de un solo canal de escala de grises, o tener un RGB de tres canales , creo que se puede tratar de escribir un procesamiento del programa de esta manera, lo más probable es exitosa.

    Esperamos ayudar Ha ~

Supongo que te gusta

Origin www.cnblogs.com/memocean/p/12587032.html
Recomendado
Clasificación