Sobel image filters. More...
Functions | |
| SIMD_API void | SimdSobelDx (const uint8_t *src, size_t srcStride, size_t width, size_t height, uint8_t *dst, size_t dstStride) |
| Calculates the horizontal Sobel derivative of an 8-bit gray image. More... | |
| SIMD_API void | SimdSobelDxAbs (const uint8_t *src, size_t srcStride, size_t width, size_t height, uint8_t *dst, size_t dstStride) |
| Calculates the absolute horizontal Sobel derivative of an 8-bit gray image. More... | |
| SIMD_API void | SimdSobelDy (const uint8_t *src, size_t srcStride, size_t width, size_t height, uint8_t *dst, size_t dstStride) |
| Calculates the vertical Sobel derivative of an 8-bit gray image. More... | |
| SIMD_API void | SimdSobelDyAbs (const uint8_t *src, size_t srcStride, size_t width, size_t height, uint8_t *dst, size_t dstStride) |
| Calculates the absolute vertical Sobel derivative of an 8-bit gray image. More... | |
| template<template< class > class A> | |
| SIMD_INLINE void | SobelDx (const View< A > &src, View< A > &dst) |
| Calculates the horizontal Sobel derivative of an 8-bit gray image. More... | |
| template<template< class > class A> | |
| SIMD_INLINE void | SobelDxAbs (const View< A > &src, View< A > &dst) |
| Calculates the absolute horizontal Sobel derivative of an 8-bit gray image. More... | |
| template<template< class > class A> | |
| SIMD_INLINE void | SobelDy (const View< A > &src, View< A > &dst) |
| Calculates the vertical Sobel derivative of an 8-bit gray image. More... | |
| template<template< class > class A> | |
| SIMD_INLINE void | SobelDyAbs (const View< A > &src, View< A > &dst) |
| Calculates the absolute vertical Sobel derivative of an 8-bit gray image. More... | |
Detailed Description
Sobel image filters.
Function Documentation
◆ SimdSobelDx()
| void SimdSobelDx | ( | const uint8_t * | src, |
| size_t | srcStride, | ||
| size_t | width, | ||
| size_t | height, | ||
| uint8_t * | dst, | ||
| size_t | dstStride | ||
| ) |
Calculates the horizontal Sobel derivative of an 8-bit gray image.
Input image must have 8-bit gray format, output image must have signed 16-bit integer format. All images must have the same width and height, and width must be greater than 1. At image borders the nearest valid source row or column is reused.
For every point:
x0 = Max(x - 1, 0); x2 = Min(x + 1, width - 1);
y0 = Max(y - 1, 0); y2 = Min(y + 1, height - 1);
dst[x, y] = (src[x2, y0] + 2*src[x2, y] + src[x2, y2]) -
(src[x0, y0] + 2*src[x0, y] + src[x0, y2]);
- Note
- This function has a C++ wrappers: Simd::SobelDx(const View<A>& src, View<A>& dst).
- Parameters
-
[in] src - a pointer to pixels data of the input image. [in] srcStride - a row size of the input image in bytes. [in] width - an image width. [in] height - an image height. [out] dst - a pointer to pixels data of the signed 16-bit output image. [in] dstStride - a row size of the output image in bytes. It must be a multiple of sizeof(int16_t).
◆ SimdSobelDxAbs()
| void SimdSobelDxAbs | ( | const uint8_t * | src, |
| size_t | srcStride, | ||
| size_t | width, | ||
| size_t | height, | ||
| uint8_t * | dst, | ||
| size_t | dstStride | ||
| ) |
Calculates the absolute horizontal Sobel derivative of an 8-bit gray image.
Input image must have 8-bit gray format, output image must have signed 16-bit integer format. All images must have the same width and height, and width must be greater than 1. At image borders the nearest valid source row or column is reused.
For every point:
x0 = Max(x - 1, 0); x2 = Min(x + 1, width - 1);
y0 = Max(y - 1, 0); y2 = Min(y + 1, height - 1);
dst[x, y] = Abs((src[x2, y0] + 2*src[x2, y] + src[x2, y2]) -
(src[x0, y0] + 2*src[x0, y] + src[x0, y2]));
- Note
- This function has a C++ wrappers: Simd::SobelDxAbs(const View<A>& src, View<A>& dst).
- Parameters
-
[in] src - a pointer to pixels data of the input image. [in] srcStride - a row size of the input image in bytes. [in] width - an image width. [in] height - an image height. [out] dst - a pointer to pixels data of the signed 16-bit output image. [in] dstStride - a row size of the output image in bytes. It must be a multiple of sizeof(int16_t).
◆ SimdSobelDy()
| void SimdSobelDy | ( | const uint8_t * | src, |
| size_t | srcStride, | ||
| size_t | width, | ||
| size_t | height, | ||
| uint8_t * | dst, | ||
| size_t | dstStride | ||
| ) |
Calculates the vertical Sobel derivative of an 8-bit gray image.
Input image must have 8-bit gray format, output image must have signed 16-bit integer format. All images must have the same width and height, and width must be greater than 1. At image borders the nearest valid source row or column is reused.
For every point:
x0 = Max(x - 1, 0); x2 = Min(x + 1, width - 1);
y0 = Max(y - 1, 0); y2 = Min(y + 1, height - 1);
dst[x, y] = (src[x0, y2] + 2*src[x, y2] + src[x2, y2]) -
(src[x0, y0] + 2*src[x, y0] + src[x2, y0]);
- Note
- This function has a C++ wrappers: Simd::SobelDy(const View<A>& src, View<A>& dst).
- Parameters
-
[in] src - a pointer to pixels data of the input image. [in] srcStride - a row size of the input image in bytes. [in] width - an image width. [in] height - an image height. [out] dst - a pointer to pixels data of the signed 16-bit output image. [in] dstStride - a row size of the output image in bytes. It must be a multiple of sizeof(int16_t).
◆ SimdSobelDyAbs()
| void SimdSobelDyAbs | ( | const uint8_t * | src, |
| size_t | srcStride, | ||
| size_t | width, | ||
| size_t | height, | ||
| uint8_t * | dst, | ||
| size_t | dstStride | ||
| ) |
Calculates the absolute vertical Sobel derivative of an 8-bit gray image.
Input image must have 8-bit gray format, output image must have signed 16-bit integer format. All images must have the same width and height, and width must be greater than 1. At image borders the nearest valid source row or column is reused.
For every point:
x0 = Max(x - 1, 0); x2 = Min(x + 1, width - 1);
y0 = Max(y - 1, 0); y2 = Min(y + 1, height - 1);
dst[x, y] = Abs((src[x0, y2] + 2*src[x, y2] + src[x2, y2]) -
(src[x0, y0] + 2*src[x, y0] + src[x2, y0]));
- Note
- This function has a C++ wrappers: Simd::SobelDyAbs(const View<A>& src, View<A>& dst).
- Parameters
-
[in] src - a pointer to pixels data of the input image. [in] srcStride - a row size of the input image in bytes. [in] width - an image width. [in] height - an image height. [out] dst - a pointer to pixels data of the signed 16-bit output image. [in] dstStride - a row size of the output image in bytes. It must be a multiple of sizeof(int16_t).
◆ SobelDx()
Calculates the horizontal Sobel derivative of an 8-bit gray image.
Input image must have 8-bit gray format, output image must have signed 16-bit integer format. All images must have the same width and height, and width must be greater than 1. At image borders the nearest valid source row or column is reused.
For every point:
x0 = Max(x - 1, 0); x2 = Min(x + 1, width - 1);
y0 = Max(y - 1, 0); y2 = Min(y + 1, height - 1);
dst[x, y] = (src[x2, y0] + 2*src[x2, y] + src[x2, y2]) -
(src[x0, y0] + 2*src[x0, y] + src[x0, y2]);
- Note
- This function is a C++ wrapper for function SimdSobelDx.
- Parameters
-
[in] src - an input 8-bit gray image. [out] dst - a signed 16-bit output image.
◆ SobelDxAbs()
Calculates the absolute horizontal Sobel derivative of an 8-bit gray image.
Input image must have 8-bit gray format, output image must have signed 16-bit integer format. All images must have the same width and height, and width must be greater than 1. At image borders the nearest valid source row or column is reused.
For every point:
x0 = Max(x - 1, 0); x2 = Min(x + 1, width - 1);
y0 = Max(y - 1, 0); y2 = Min(y + 1, height - 1);
dst[x, y] = Abs((src[x2, y0] + 2*src[x2, y] + src[x2, y2]) -
(src[x0, y0] + 2*src[x0, y] + src[x0, y2]));
- Note
- This function is a C++ wrapper for function SimdSobelDxAbs.
- Parameters
-
[in] src - an input 8-bit gray image. [out] dst - a signed 16-bit output image.
◆ SobelDy()
Calculates the vertical Sobel derivative of an 8-bit gray image.
Input image must have 8-bit gray format, output image must have signed 16-bit integer format. All images must have the same width and height, and width must be greater than 1. At image borders the nearest valid source row or column is reused.
For every point:
x0 = Max(x - 1, 0); x2 = Min(x + 1, width - 1);
y0 = Max(y - 1, 0); y2 = Min(y + 1, height - 1);
dst[x, y] = (src[x0, y2] + 2*src[x, y2] + src[x2, y2]) -
(src[x0, y0] + 2*src[x, y0] + src[x2, y0]);
- Note
- This function is a C++ wrapper for function SimdSobelDy.
- Parameters
-
[in] src - an input 8-bit gray image. [out] dst - a signed 16-bit output image.
◆ SobelDyAbs()
Calculates the absolute vertical Sobel derivative of an 8-bit gray image.
Input image must have 8-bit gray format, output image must have signed 16-bit integer format. All images must have the same width and height, and width must be greater than 1. At image borders the nearest valid source row or column is reused.
For every point:
x0 = Max(x - 1, 0); x2 = Min(x + 1, width - 1);
y0 = Max(y - 1, 0); y2 = Min(y + 1, height - 1);
dst[x, y] = Abs((src[x0, y2] + 2*src[x, y2] + src[x2, y2]) -
(src[x0, y0] + 2*src[x, y0] + src[x2, y0]));
- Note
- This function is a C++ wrapper for function SimdSobelDyAbs.
- Parameters
-
[in] src - an input 8-bit gray image. [out] dst - a signed 16-bit output image.