Cómo implementar un algoritmo de marca de agua digital de espectro extendido usando C++
Primero, debes escribir funciones DCT, DWT, etc. en C++.
Debido a que lo usará y lo usará con frecuencia, escriba uno usted mismo o busque uno en línea.
El espectro ensanchado generalmente se realiza después de la conversión del dominio de frecuencia. Por supuesto, también es posible ensanchar el espectro primero y luego convertir el dominio de frecuencia.
1. Leer la imagen original. Luego, realice una transformación en el dominio de la frecuencia (también se puede usar DCT o DWT, FFT) y luego ensanche el espectro (el espectro ensanchado es relativamente simple, y luego directamente *2 la frecuencia original, que también es espectro ensanchado).
2. Leer la imagen que se va a incrustar.
3. Genere un número pseudoaleatorio y realice la operación XOR (XOR) en la imagen incrustada.
4. Incrustar la imagen procesada a incrustar en la banda de frecuencia seleccionada en el dominio de espectro ensanchado de la imagen original mediante un algoritmo.
5. Restaure el espectro ensanchado incrustado y luego realice DCT, DWT y otras transformaciones para obtener la imagen con la marca de agua incrustada.