Open Source Computer Vision Library
https://opencv.org/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
268 lines
10 KiB
268 lines
10 KiB
/* |
|
* Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. |
|
* SPDX-License-Identifier: Apache-2.0 |
|
*/ |
|
|
|
#ifndef OPENCV_FASTCV_HAL_IMGPROC_HPP_INCLUDED |
|
#define OPENCV_FASTCV_HAL_IMGPROC_HPP_INCLUDED |
|
|
|
#include <opencv2/core/base.hpp> |
|
|
|
#undef cv_hal_medianBlur |
|
#define cv_hal_medianBlur fastcv_hal_medianBlur |
|
#undef cv_hal_sobel |
|
#define cv_hal_sobel fastcv_hal_sobel |
|
#undef cv_hal_boxFilter |
|
#define cv_hal_boxFilter fastcv_hal_boxFilter |
|
#undef cv_hal_adaptiveThreshold |
|
#define cv_hal_adaptiveThreshold fastcv_hal_adaptiveThreshold |
|
#undef cv_hal_gaussianBlurBinomial |
|
#define cv_hal_gaussianBlurBinomial fastcv_hal_gaussianBlurBinomial |
|
#undef cv_hal_warpPerspective |
|
#define cv_hal_warpPerspective fastcv_hal_warpPerspective |
|
#undef cv_hal_pyrdown |
|
#define cv_hal_pyrdown fastcv_hal_pyrdown |
|
#undef cv_hal_cvtBGRtoHSV |
|
#define cv_hal_cvtBGRtoHSV fastcv_hal_cvtBGRtoHSV |
|
#undef cv_hal_cvtBGRtoYUVApprox |
|
#define cv_hal_cvtBGRtoYUVApprox fastcv_hal_cvtBGRtoYUVApprox |
|
#undef cv_hal_canny |
|
#define cv_hal_canny fastcv_hal_canny |
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
/// @brief Calculate medianBlur filter |
|
/// @param src_data Source image data |
|
/// @param src_step Source image step |
|
/// @param dst_data Destination image data |
|
/// @param dst_step Destination image step |
|
/// @param width Source image width |
|
/// @param height Source image height |
|
/// @param depth Depths of source and destination image |
|
/// @param cn Number of channels |
|
/// @param ksize Size of kernel |
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
int fastcv_hal_medianBlur( |
|
const uchar* src_data, |
|
size_t src_step, |
|
uchar* dst_data, |
|
size_t dst_step, |
|
int width, |
|
int height, |
|
int depth, |
|
int cn, |
|
int ksize); |
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
/// @brief Computes Sobel derivatives |
|
/// |
|
/// @param src_data Source image data |
|
/// @param src_step Source image step |
|
/// @param dst_data Destination image data |
|
/// @param dst_step Destination image step |
|
/// @param width Source image width |
|
/// @param height Source image height |
|
/// @param src_depth Depth of source image |
|
/// @param dst_depth Depths of destination image |
|
/// @param cn Number of channels |
|
/// @param margin_left Left margins for source image |
|
/// @param margin_top Top margins for source image |
|
/// @param margin_right Right margins for source image |
|
/// @param margin_bottom Bottom margins for source image |
|
/// @param dx orders of the derivative x |
|
/// @param dy orders of the derivative y |
|
/// @param ksize Size of kernel |
|
/// @param scale Scale factor for the computed derivative values |
|
/// @param delta Delta value that is added to the results prior to storing them in dst |
|
/// @param border_type Border type |
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
int fastcv_hal_sobel( |
|
const uchar* src_data, |
|
size_t src_step, |
|
uchar* dst_data, |
|
size_t dst_step, |
|
int width, |
|
int height, |
|
int src_depth, |
|
int dst_depth, |
|
int cn, |
|
int margin_left, |
|
int margin_top, |
|
int margin_right, |
|
int margin_bottom, |
|
int dx, |
|
int dy, |
|
int ksize, |
|
double scale, |
|
double delta, |
|
int border_type); |
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
|
|
int fastcv_hal_boxFilter( |
|
const uchar* src_data, |
|
size_t src_step, |
|
uchar* dst_data, |
|
size_t dst_step, |
|
int width, |
|
int height, |
|
int src_depth, |
|
int dst_depth, |
|
int cn, |
|
int margin_left, |
|
int margin_top, |
|
int margin_right, |
|
int margin_bottom, |
|
size_t ksize_width, |
|
size_t ksize_height, |
|
int anchor_x, |
|
int anchor_y, |
|
bool normalize, |
|
int border_type); |
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
int fastcv_hal_adaptiveThreshold( |
|
const uchar* src_data, |
|
size_t src_step, |
|
uchar* dst_data, |
|
size_t dst_step, |
|
int width, |
|
int height, |
|
double maxValue, |
|
int adaptiveMethod, |
|
int thresholdType, |
|
int blockSize, |
|
double C); |
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
/// @brief Blurs an image using a Gaussian filter. |
|
/// @param src_data Source image data |
|
/// @param src_step Source image step |
|
/// @param dst_data Destination image data |
|
/// @param dst_step Destination image step |
|
/// @param width Source image width |
|
/// @param height Source image height |
|
/// @param depth Depth of source and destination image |
|
/// @param cn Number of channels |
|
/// @param margin_left Left margins for source image |
|
/// @param margin_top Top margins for source image |
|
/// @param margin_right Right margins for source image |
|
/// @param margin_bottom Bottom margins for source image |
|
/// @param ksize Kernel size |
|
/// @param border_type Border type |
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
int fastcv_hal_gaussianBlurBinomial( |
|
const uchar* src_data, |
|
size_t src_step, |
|
uchar* dst_data, |
|
size_t dst_step, |
|
int width, |
|
int height, |
|
int depth, |
|
int cn, |
|
size_t margin_left, |
|
size_t margin_top, |
|
size_t margin_right, |
|
size_t margin_bottom, |
|
size_t ksize, |
|
int border_type); |
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
/// @brief Applies a perspective transformation to an image. |
|
/// |
|
/// @param src_type Source and destination image type |
|
/// @param src_data Source image data |
|
/// @param src_step Source image step |
|
/// @param src_width Source image width |
|
/// @param src_height Source image height |
|
/// @param dst_data Destination image data |
|
/// @param dst_step Destination image step |
|
/// @param dst_width Destination image width |
|
/// @param dst_height Destination image height |
|
/// @param M 3x3 matrix with transform coefficients |
|
/// @param interpolation Interpolation mode (CV_HAL_INTER_NEAREST, ...) |
|
/// @param border_type Border processing mode (CV_HAL_BORDER_REFLECT, ...) |
|
/// @param border_value Values to use for CV_HAL_BORDER_CONSTANT mode |
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
int fastcv_hal_warpPerspective( |
|
int src_type, |
|
const uchar* src_data, |
|
size_t src_step, |
|
int src_width, |
|
int src_height, |
|
uchar* dst_data, |
|
size_t dst_step, |
|
int dst_width, |
|
int dst_height, |
|
const double M[9], |
|
int interpolation, |
|
int border_type, |
|
const double border_value[4]); |
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
int fastcv_hal_pyrdown( |
|
const uchar* src_data, |
|
size_t src_step, |
|
int src_width, |
|
int src_height, |
|
uchar* dst_data, |
|
size_t dst_step, |
|
int dst_width, |
|
int dst_height, |
|
int depth, |
|
int cn, |
|
int border_type); |
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
int fastcv_hal_cvtBGRtoHSV( |
|
const uchar * src_data, |
|
size_t src_step, |
|
uchar * dst_data, |
|
size_t dst_step, |
|
int width, |
|
int height, |
|
int depth, |
|
int scn, |
|
bool swapBlue, |
|
bool isFullRange, |
|
bool isHSV); |
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
int fastcv_hal_cvtBGRtoYUVApprox( |
|
const uchar * src_data, |
|
size_t src_step, |
|
uchar * dst_data, |
|
size_t dst_step, |
|
int width, |
|
int height, |
|
int depth, |
|
int scn, |
|
bool swapBlue, |
|
bool isCbCr); |
|
|
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
/// @brief Canny edge detector |
|
/// @param src_data Source image data |
|
/// @param src_step Source image step |
|
/// @param dst_data Destination image data |
|
/// @param dst_step Destination image step |
|
/// @param width Source image width |
|
/// @param height Source image height |
|
/// @param cn Number of channels |
|
/// @param lowThreshold low hresholds value |
|
/// @param highThreshold high thresholds value |
|
/// @param ksize Kernel size for Sobel operator. |
|
/// @param L2gradient Flag, indicating use of L2 or L1 norma. |
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
|
int fastcv_hal_canny( |
|
const uchar* src_data, |
|
size_t src_step, |
|
uchar* dst_data, |
|
size_t dst_step, |
|
int width, |
|
int height, |
|
int cn, |
|
double lowThreshold, |
|
double highThreshold, |
|
int ksize, |
|
bool L2gradient); |
|
|
|
#endif
|
|
|