Operações de imagem, adição, subtração, multiplicação, divisão, OR, XOR
Aqui, um tipo de enumeração é construído para operações de imagem.
public enum ImageOperation
{
Add,
Divide,
Multiply,
SubStact,
And,
Or,
Xor,
Max,
Min
}
Encapsule a operação e operação de imagens para facilitar o uso.
1: Adicionar adição de imagem. Os valores das duas matrizes são somados diretamente.
2: Divida a divisão da imagem, os valores correspondentes às duas matrizes são divididos pela escala scr1/scr2*
3: As imagens multiplicadas são multiplicadas e os valores correspondentes às duas matrizes são multiplicados por scr1*scr2*scale
4: Subtração de imagem SubStact, subtraia os valores correspondentes das duas matrizes
5: E e
6:ou 或
7: xor exclusivo ou
8: Max O valor máximo das posições correspondentes das duas matrizes
9: Min é o valor mínimo das posições correspondentes das duas matrizes
/// <summary>
/// 图片运算
/// </summary>
/// <param name="Srcimage">输入图片1</param>
/// <param name="Srcimage1">输入图片2</param>
/// <param name="mode">运算模式</param>
/// <param name="dst">输出图像</param>
/// <param name="scale">缩放系数</param>
/// <exception cref="ArgumentOutOfRangeException"></exception>
public static void ImageOperation(InputArray Srcimage, InputArray Srcimage1, ImageOperation mode, OutputArray dst, int scale = 0)
{
switch (mode)
{
case ImageOperation.Add:
Cv2.Add(Srcimage, Srcimage1, dst);
break;
case ImageOperation.Divide:
Cv2.Divide(Srcimage, Srcimage1, dst, scale);
break;
case ImageOperation.Multiply:
Cv2.Multiply(Srcimage, Srcimage1, dst, scale);
break;
case ImageOperation.SubStact:
Cv2.Subtract(Srcimage, Srcimage1, dst);
break;
case ImageOperation.And:
Cv2.BitwiseAnd(Srcimage, Srcimage1, dst);
break;
case ImageOperation.Or:
Cv2.BitwiseOr(Srcimage, Srcimage1, dst);
break;
case ImageOperation.Xor:
Cv2.BitwiseXor(Srcimage, Srcimage1, dst);
break;
case ImageOperation.Max:
Cv2.Max(Srcimage, Srcimage1, dst);
break;
case ImageOperation.Min:
Cv2.Min(Srcimage, Srcimage1, dst);
break;
default:
throw new ArgumentOutOfRangeException(nameof(mode), mode, null);
}
}
Valor absoluto da imagem
Geralmente usado em algoritmos de busca de borda, como Sobel
Cv2.ConvertScaleAbs(Srcimage, dst);