Question

J'utilise EmguCV et essaie de soustraire 2 images pour créer un filtre similaire à Aforge de .NET le filtre de MoveTowards.

est ce que ma version légèrement modifiée de l'URL ci-dessus essaie de faire. Compte tenu de 2 images, la source et la superposition - il se déplace lentement l'image source vers la superposition. Il le fait en fonction de ce qui suit:

result = source + movementFactor * (overlay - source);

où conséquence, la source et la superposition des images et movementFactor est le taux de variation dans la gamme de 0 à 1.

Quand j'ai essayé dans votre code avec movementFactor égal à 1, les résultats avaient l'air foiré (il y avait quelque chose comme une traînée de mouvement). Pour tester davantage, je l'ai enlevé movementFactor de l'équation ci-dessus, et fait result = source de + superposition - la source. Je me attendais à voir l'image de surimpression comme résultat, que je l'ai fait, mais avec une région de l'image qui clignotait.

Je suppose que les intensités de pixels se clipsés les limites supérieures ou inférieures lorsque l'addition / soustraction a lieu.

Je peux accomplir ce que je veux ceci:

for (int i = 0; i < src.Height; i++)
{
    for (int j = 0; j < src.Width; j++)
    {
        res[i, j] = new Gray(src[i, j].Intensity + movementFactor * (ovr[i, j].Intensity - src[i, j].Intensity));
    }
}

Mais cela ralentit considérablement le traitement. Comment puis-je surmonter le problème d'addition / soustraction ou le problème de vitesse avec ce qui précède? Merci pour vos réponses!

Autres conseils

  

Je vais poster la réponse que je trouve ici, au cas où quelqu'un traverse   le même problème à l'avenir.

     

Voici comment vous le faire:

Image<Gray,Byte> result = new Image<Gray,Byte>(source.Size);
CvInvoke.cvAddWeighted(source, 1.0-movementFactor, overlay, movementFactor, 0.0, result); 
     

Source: forum de EmguCV, est ici la   poste qui m'a donné la réponse

Notez qu'il existe une syntaxe plus propre pour que:

var result = frame.AddWeighted(1.0 - movementFactor, overlay, movementFactor, 0.0);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top