类 Imgproc


  • public class Imgproc
    extends java.lang.Object
    • 字段详情

      • CV_GAUSSIAN_5x5

        public static final int CV_GAUSSIAN_5x5
        另请参阅
        常量字段值
      • CV_SCHARR

        public static final int CV_SCHARR
        另请参阅
        常量字段值
      • CV_MAX_SOBEL_KSIZE

        public static final int CV_MAX_SOBEL_KSIZE
        另请参阅
        常量字段值
      • CV_RGBA2mRGBA

        public static final int CV_RGBA2mRGBA
        另请参阅
        常量字段值
      • CV_mRGBA2RGBA

        public static final int CV_mRGBA2RGBA
        另请参阅
        常量字段值
      • CV_WARP_FILL_OUTLIERS

        public static final int CV_WARP_FILL_OUTLIERS
        另请参阅
        常量字段值
      • CV_WARP_INVERSE_MAP

        public static final int CV_WARP_INVERSE_MAP
        另请参阅
        常量字段值
      • CV_WARP_RELATIVE_MAP

        public static final int CV_WARP_RELATIVE_MAP
        另请参阅
        常量字段值
      • CV_CHAIN_CODE

        public static final int CV_CHAIN_CODE
        另请参阅
        常量字段值
      • CV_LINK_RUNS

        public static final int CV_LINK_RUNS
        另请参阅
        常量字段值
      • CV_POLY_APPROX_DP

        public static final int CV_POLY_APPROX_DP
        另请参阅
        常量字段值
      • CV_CONTOURS_MATCH_I1

        public static final int CV_CONTOURS_MATCH_I1
        另请参阅
        常量字段值
      • CV_CONTOURS_MATCH_I2

        public static final int CV_CONTOURS_MATCH_I2
        另请参阅
        常量字段值
      • CV_CONTOURS_MATCH_I3

        public static final int CV_CONTOURS_MATCH_I3
        另请参阅
        常量字段值
      • CV_CLOCKWISE

        public static final int CV_CLOCKWISE
        另请参阅
        常量字段值
      • CV_COUNTER_CLOCKWISE

        public static final int CV_COUNTER_CLOCKWISE
        另请参阅
        常量字段值
      • CV_COMP_CORREL

        public static final int CV_COMP_CORREL
        另请参阅
        常量字段值
      • CV_COMP_CHISQR

        public static final int CV_COMP_CHISQR
        另请参阅
        常量字段值
      • CV_COMP_INTERSECT

        public static final int CV_COMP_INTERSECT
        另请参阅
        常量字段值
      • CV_COMP_BHATTACHARYYA

        public static final int CV_COMP_BHATTACHARYYA
        另请参阅
        常量字段值
      • CV_COMP_HELLINGER

        public static final int CV_COMP_HELLINGER
        另请参阅
        常量字段值
      • CV_COMP_CHISQR_ALT

        public static final int CV_COMP_CHISQR_ALT
        另请参阅
        常量字段值
      • CV_COMP_KL_DIV

        public static final int CV_COMP_KL_DIV
        另请参阅
        常量字段值
      • CV_DIST_MASK_3

        public static final int CV_DIST_MASK_3
        另请参阅
        常量字段值
      • CV_DIST_MASK_5

        public static final int CV_DIST_MASK_5
        另请参阅
        常量字段值
      • CV_DIST_MASK_PRECISE

        public static final int CV_DIST_MASK_PRECISE
        另请参阅
        常量字段值
      • CV_DIST_LABEL_CCOMP

        public static final int CV_DIST_LABEL_CCOMP
        另请参阅
        常量字段值
      • CV_DIST_LABEL_PIXEL

        public static final int CV_DIST_LABEL_PIXEL
        另请参阅
        常量字段值
      • CV_DIST_USER

        public static final int CV_DIST_USER
        另请参阅
        常量字段值
      • CV_DIST_L1

        public static final int CV_DIST_L1
        另请参阅
        常量字段值
      • CV_DIST_L2

        public static final int CV_DIST_L2
        另请参阅
        常量字段值
      • CV_DIST_C

        public static final int CV_DIST_C
        另请参阅
        常量字段值
      • CV_DIST_L12

        public static final int CV_DIST_L12
        另请参阅
        常量字段值
      • CV_DIST_FAIR

        public static final int CV_DIST_FAIR
        另请参阅
        常量字段值
      • CV_DIST_WELSCH

        public static final int CV_DIST_WELSCH
        另请参阅
        常量字段值
      • CV_DIST_HUBER

        public static final int CV_DIST_HUBER
        另请参阅
        常量字段值
      • CV_CANNY_L2_GRADIENT

        public static final int CV_CANNY_L2_GRADIENT
        另请参阅
        常量字段值
      • CV_HOUGH_STANDARD

        public static final int CV_HOUGH_STANDARD
        另请参阅
        常量字段值
      • CV_HOUGH_PROBABILISTIC

        public static final int CV_HOUGH_PROBABILISTIC
        另请参阅
        常量字段值
      • CV_HOUGH_MULTI_SCALE

        public static final int CV_HOUGH_MULTI_SCALE
        另请参阅
        常量字段值
      • CV_HOUGH_GRADIENT

        public static final int CV_HOUGH_GRADIENT
        另请参阅
        常量字段值
      • CV_SHAPE_RECT

        public static final int CV_SHAPE_RECT
        另请参阅
        常量字段值
      • CV_SHAPE_CROSS

        public static final int CV_SHAPE_CROSS
        另请参阅
        常量字段值
      • CV_SHAPE_ELLIPSE

        public static final int CV_SHAPE_ELLIPSE
        另请参阅
        常量字段值
      • CV_SHAPE_DIAMOND

        public static final int CV_SHAPE_DIAMOND
        另请参阅
        常量字段值
      • CV_SHAPE_CUSTOM

        public static final int CV_SHAPE_CUSTOM
        另请参阅
        常量字段值
      • CV_BLUR_NO_SCALE

        public static final int CV_BLUR_NO_SCALE
        另请参阅
        常量字段值
      • CV_GAUSSIAN

        public static final int CV_GAUSSIAN
        另请参阅
        常量字段值
      • CV_MEDIAN

        public static final int CV_MEDIAN
        另请参阅
        常量字段值
      • CV_BILATERAL

        public static final int CV_BILATERAL
        另请参阅
        常量字段值
      • ADAPTIVE_THRESH_MEAN_C

        public static final int ADAPTIVE_THRESH_MEAN_C
        另请参阅
        常量字段值
      • ADAPTIVE_THRESH_GAUSSIAN_C

        public static final int ADAPTIVE_THRESH_GAUSSIAN_C
        另请参阅
        常量字段值
      • COLOR_BGR2BGRA

        public static final int COLOR_BGR2BGRA
        另请参阅
        常量字段值
      • COLOR_RGB2RGBA

        public static final int COLOR_RGB2RGBA
        另请参阅
        常量字段值
      • COLOR_BGRA2BGR

        public static final int COLOR_BGRA2BGR
        另请参阅
        常量字段值
      • COLOR_RGBA2RGB

        public static final int COLOR_RGBA2RGB
        另请参阅
        常量字段值
      • COLOR_BGR2RGBA

        public static final int COLOR_BGR2RGBA
        另请参阅
        常量字段值
      • COLOR_RGB2BGRA

        public static final int COLOR_RGB2BGRA
        另请参阅
        常量字段值
      • COLOR_RGBA2BGR

        public static final int COLOR_RGBA2BGR
        另请参阅
        常量字段值
      • COLOR_BGRA2RGB

        public static final int COLOR_BGRA2RGB
        另请参阅
        常量字段值
      • COLOR_BGR2RGB

        public static final int COLOR_BGR2RGB
        另请参阅
        常量字段值
      • COLOR_RGB2BGR

        public static final int COLOR_RGB2BGR
        另请参阅
        常量字段值
      • COLOR_BGRA2RGBA

        public static final int COLOR_BGRA2RGBA
        另请参阅
        常量字段值
      • COLOR_RGBA2BGRA

        public static final int COLOR_RGBA2BGRA
        另请参阅
        常量字段值
      • COLOR_BGR2GRAY

        public static final int COLOR_BGR2GRAY
        另请参阅
        常量字段值
      • COLOR_RGB2GRAY

        public static final int COLOR_RGB2GRAY
        另请参阅
        常量字段值
      • COLOR_GRAY2BGR

        public static final int COLOR_GRAY2BGR
        另请参阅
        常量字段值
      • COLOR_GRAY2RGB

        public static final int COLOR_GRAY2RGB
        另请参阅
        常量字段值
      • COLOR_GRAY2BGRA

        public static final int COLOR_GRAY2BGRA
        另请参阅
        常量字段值
      • COLOR_GRAY2RGBA

        public static final int COLOR_GRAY2RGBA
        另请参阅
        常量字段值
      • COLOR_BGRA2GRAY

        public static final int COLOR_BGRA2GRAY
        另请参阅
        常量字段值
      • COLOR_RGBA2GRAY

        public static final int COLOR_RGBA2GRAY
        另请参阅
        常量字段值
      • COLOR_BGR2BGR565

        public static final int COLOR_BGR2BGR565
        另请参阅
        常量字段值
      • COLOR_RGB2BGR565

        public static final int COLOR_RGB2BGR565
        另请参阅
        常量字段值
      • COLOR_BGR5652BGR

        public static final int COLOR_BGR5652BGR
        另请参阅
        常量字段值
      • COLOR_BGR5652RGB

        public static final int COLOR_BGR5652RGB
        另请参阅
        常量字段值
      • COLOR_BGRA2BGR565

        public static final int COLOR_BGRA2BGR565
        另请参阅
        常量字段值
      • COLOR_RGBA2BGR565

        public static final int COLOR_RGBA2BGR565
        另请参阅
        常量字段值
      • COLOR_BGR5652BGRA

        public static final int COLOR_BGR5652BGRA
        另请参阅
        常量字段值
      • COLOR_BGR5652RGBA

        public static final int COLOR_BGR5652RGBA
        另请参阅
        常量字段值
      • COLOR_GRAY2BGR565

        public static final int COLOR_GRAY2BGR565
        另请参阅
        常量字段值
      • COLOR_BGR5652GRAY

        public static final int COLOR_BGR5652GRAY
        另请参阅
        常量字段值
      • COLOR_BGR2BGR555

        public static final int COLOR_BGR2BGR555
        另请参阅
        常量字段值
      • COLOR_RGB2BGR555

        public static final int COLOR_RGB2BGR555
        另请参阅
        常量字段值
      • COLOR_BGR5552BGR

        public static final int COLOR_BGR5552BGR
        另请参阅
        常量字段值
      • COLOR_BGR5552RGB

        public static final int COLOR_BGR5552RGB
        另请参阅
        常量字段值
      • COLOR_BGRA2BGR555

        public static final int COLOR_BGRA2BGR555
        另请参阅
        常量字段值
      • COLOR_RGBA2BGR555

        public static final int COLOR_RGBA2BGR555
        另请参阅
        常量字段值
      • COLOR_BGR5552BGRA

        public static final int COLOR_BGR5552BGRA
        另请参阅
        常量字段值
      • COLOR_BGR5552RGBA

        public static final int COLOR_BGR5552RGBA
        另请参阅
        常量字段值
      • COLOR_GRAY2BGR555

        public static final int COLOR_GRAY2BGR555
        另请参阅
        常量字段值
      • COLOR_BGR5552GRAY

        public static final int COLOR_BGR5552GRAY
        另请参阅
        常量字段值
      • COLOR_BGR2XYZ

        public static final int COLOR_BGR2XYZ
        另请参阅
        常量字段值
      • COLOR_RGB2XYZ

        public static final int COLOR_RGB2XYZ
        另请参阅
        常量字段值
      • COLOR_XYZ2BGR

        public static final int COLOR_XYZ2BGR
        另请参阅
        常量字段值
      • COLOR_XYZ2RGB

        public static final int COLOR_XYZ2RGB
        另请参阅
        常量字段值
      • COLOR_BGR2YCrCb

        public static final int COLOR_BGR2YCrCb
        另请参阅
        常量字段值
      • COLOR_RGB2YCrCb

        public static final int COLOR_RGB2YCrCb
        另请参阅
        常量字段值
      • COLOR_YCrCb2BGR

        public static final int COLOR_YCrCb2BGR
        另请参阅
        常量字段值
      • COLOR_YCrCb2RGB

        public static final int COLOR_YCrCb2RGB
        另请参阅
        常量字段值
      • COLOR_BGR2HSV

        public static final int COLOR_BGR2HSV
        另请参阅
        常量字段值
      • COLOR_RGB2HSV

        public static final int COLOR_RGB2HSV
        另请参阅
        常量字段值
      • COLOR_BGR2Lab

        public static final int COLOR_BGR2Lab
        另请参阅
        常量字段值
      • COLOR_RGB2Lab

        public static final int COLOR_RGB2Lab
        另请参阅
        常量字段值
      • COLOR_BGR2Luv

        public static final int COLOR_BGR2Luv
        另请参阅
        常量字段值
      • COLOR_RGB2Luv

        public static final int COLOR_RGB2Luv
        另请参阅
        常量字段值
      • COLOR_BGR2HLS

        public static final int COLOR_BGR2HLS
        另请参阅
        常量字段值
      • COLOR_RGB2HLS

        public static final int COLOR_RGB2HLS
        另请参阅
        常量字段值
      • COLOR_HSV2BGR

        public static final int COLOR_HSV2BGR
        另请参阅
        常量字段值
      • COLOR_HSV2RGB

        public static final int COLOR_HSV2RGB
        另请参阅
        常量字段值
      • COLOR_Lab2BGR

        public static final int COLOR_Lab2BGR
        另请参阅
        常量字段值
      • COLOR_Lab2RGB

        public static final int COLOR_Lab2RGB
        另请参阅
        常量字段值
      • COLOR_Luv2BGR

        public static final int COLOR_Luv2BGR
        另请参阅
        常量字段值
      • COLOR_Luv2RGB

        public static final int COLOR_Luv2RGB
        另请参阅
        常量字段值
      • COLOR_HLS2BGR

        public static final int COLOR_HLS2BGR
        另请参阅
        常量字段值
      • COLOR_HLS2RGB

        public static final int COLOR_HLS2RGB
        另请参阅
        常量字段值
      • COLOR_BGR2HSV_FULL

        public static final int COLOR_BGR2HSV_FULL
        另请参阅
        常量字段值
      • COLOR_RGB2HSV_FULL

        public static final int COLOR_RGB2HSV_FULL
        另请参阅
        常量字段值
      • COLOR_BGR2HLS_FULL

        public static final int COLOR_BGR2HLS_FULL
        另请参阅
        常量字段值
      • COLOR_RGB2HLS_FULL

        public static final int COLOR_RGB2HLS_FULL
        另请参阅
        常量字段值
      • COLOR_HSV2BGR_FULL

        public static final int COLOR_HSV2BGR_FULL
        另请参阅
        常量字段值
      • COLOR_HSV2RGB_FULL

        public static final int COLOR_HSV2RGB_FULL
        另请参阅
        常量字段值
      • COLOR_HLS2BGR_FULL

        public static final int COLOR_HLS2BGR_FULL
        另请参阅
        常量字段值
      • COLOR_HLS2RGB_FULL

        public static final int COLOR_HLS2RGB_FULL
        另请参阅
        常量字段值
      • COLOR_LBGR2Lab

        public static final int COLOR_LBGR2Lab
        另请参阅
        常量字段值
      • COLOR_LRGB2Lab

        public static final int COLOR_LRGB2Lab
        另请参阅
        常量字段值
      • COLOR_LBGR2Luv

        public static final int COLOR_LBGR2Luv
        另请参阅
        常量字段值
      • COLOR_LRGB2Luv

        public static final int COLOR_LRGB2Luv
        另请参阅
        常量字段值
      • COLOR_Lab2LBGR

        public static final int COLOR_Lab2LBGR
        另请参阅
        常量字段值
      • COLOR_Lab2LRGB

        public static final int COLOR_Lab2LRGB
        另请参阅
        常量字段值
      • COLOR_Luv2LBGR

        public static final int COLOR_Luv2LBGR
        另请参阅
        常量字段值
      • COLOR_Luv2LRGB

        public static final int COLOR_Luv2LRGB
        另请参阅
        常量字段值
      • COLOR_BGR2YUV

        public static final int COLOR_BGR2YUV
        另请参阅
        常量字段值
      • COLOR_RGB2YUV

        public static final int COLOR_RGB2YUV
        另请参阅
        常量字段值
      • COLOR_YUV2BGR

        public static final int COLOR_YUV2BGR
        另请参阅
        常量字段值
      • COLOR_YUV2RGB

        public static final int COLOR_YUV2RGB
        另请参阅
        常量字段值
      • COLOR_YUV2RGB_NV12

        public static final int COLOR_YUV2RGB_NV12
        另请参阅
        常量字段值
      • COLOR_YUV2BGR_NV12

        public static final int COLOR_YUV2BGR_NV12
        另请参阅
        常量字段值
      • COLOR_YUV2RGB_NV21

        public static final int COLOR_YUV2RGB_NV21
        另请参阅
        常量字段值
      • COLOR_YUV2BGR_NV21

        public static final int COLOR_YUV2BGR_NV21
        另请参阅
        常量字段值
      • COLOR_YUV420sp2RGB

        public static final int COLOR_YUV420sp2RGB
        另请参阅
        常量字段值
      • COLOR_YUV420sp2BGR

        public static final int COLOR_YUV420sp2BGR
        另请参阅
        常量字段值
      • COLOR_YUV2RGBA_NV12

        public static final int COLOR_YUV2RGBA_NV12
        另请参阅
        常量字段值
      • COLOR_YUV2BGRA_NV12

        public static final int COLOR_YUV2BGRA_NV12
        另请参阅
        常量字段值
      • COLOR_YUV2RGBA_NV21

        public static final int COLOR_YUV2RGBA_NV21
        另请参阅
        常量字段值
      • COLOR_YUV2BGRA_NV21

        public static final int COLOR_YUV2BGRA_NV21
        另请参阅
        常量字段值
      • COLOR_YUV420sp2RGBA

        public static final int COLOR_YUV420sp2RGBA
        另请参阅
        常量字段值
      • COLOR_YUV420sp2BGRA

        public static final int COLOR_YUV420sp2BGRA
        另请参阅
        常量字段值
      • COLOR_YUV2RGB_YV12

        public static final int COLOR_YUV2RGB_YV12
        另请参阅
        常量字段值
      • COLOR_YUV2BGR_YV12

        public static final int COLOR_YUV2BGR_YV12
        另请参阅
        常量字段值
      • COLOR_YUV2RGB_IYUV

        public static final int COLOR_YUV2RGB_IYUV
        另请参阅
        常量字段值
      • COLOR_YUV2BGR_IYUV

        public static final int COLOR_YUV2BGR_IYUV
        另请参阅
        常量字段值
      • COLOR_YUV2RGB_I420

        public static final int COLOR_YUV2RGB_I420
        另请参阅
        常量字段值
      • COLOR_YUV2BGR_I420

        public static final int COLOR_YUV2BGR_I420
        另请参阅
        常量字段值
      • COLOR_YUV420p2RGB

        public static final int COLOR_YUV420p2RGB
        另请参阅
        常量字段值
      • COLOR_YUV420p2BGR

        public static final int COLOR_YUV420p2BGR
        另请参阅
        常量字段值
      • COLOR_YUV2RGBA_YV12

        public static final int COLOR_YUV2RGBA_YV12
        另请参阅
        常量字段值
      • COLOR_YUV2BGRA_YV12

        public static final int COLOR_YUV2BGRA_YV12
        另请参阅
        常量字段值
      • COLOR_YUV2RGBA_IYUV

        public static final int COLOR_YUV2RGBA_IYUV
        另请参阅
        常量字段值
      • COLOR_YUV2BGRA_IYUV

        public static final int COLOR_YUV2BGRA_IYUV
        另请参阅
        常量字段值
      • COLOR_YUV2RGBA_I420

        public static final int COLOR_YUV2RGBA_I420
        另请参阅
        常量字段值
      • COLOR_YUV2BGRA_I420

        public static final int COLOR_YUV2BGRA_I420
        另请参阅
        常量字段值
      • COLOR_YUV420p2RGBA

        public static final int COLOR_YUV420p2RGBA
        另请参阅
        常量字段值
      • COLOR_YUV420p2BGRA

        public static final int COLOR_YUV420p2BGRA
        另请参阅
        常量字段值
      • COLOR_YUV2GRAY_420

        public static final int COLOR_YUV2GRAY_420
        另请参阅
        常量字段值
      • COLOR_YUV2GRAY_NV21

        public static final int COLOR_YUV2GRAY_NV21
        另请参阅
        常量字段值
      • COLOR_YUV2GRAY_NV12

        public static final int COLOR_YUV2GRAY_NV12
        另请参阅
        常量字段值
      • COLOR_YUV2GRAY_YV12

        public static final int COLOR_YUV2GRAY_YV12
        另请参阅
        常量字段值
      • COLOR_YUV2GRAY_IYUV

        public static final int COLOR_YUV2GRAY_IYUV
        另请参阅
        常量字段值
      • COLOR_YUV2GRAY_I420

        public static final int COLOR_YUV2GRAY_I420
        另请参阅
        常量字段值
      • COLOR_YUV420sp2GRAY

        public static final int COLOR_YUV420sp2GRAY
        另请参阅
        常量字段值
      • COLOR_YUV420p2GRAY

        public static final int COLOR_YUV420p2GRAY
        另请参阅
        常量字段值
      • COLOR_YUV2RGB_UYVY

        public static final int COLOR_YUV2RGB_UYVY
        另请参阅
        常量字段值
      • COLOR_YUV2BGR_UYVY

        public static final int COLOR_YUV2BGR_UYVY
        另请参阅
        常量字段值
      • COLOR_YUV2RGB_Y422

        public static final int COLOR_YUV2RGB_Y422
        另请参阅
        常量字段值
      • COLOR_YUV2BGR_Y422

        public static final int COLOR_YUV2BGR_Y422
        另请参阅
        常量字段值
      • COLOR_YUV2RGB_UYNV

        public static final int COLOR_YUV2RGB_UYNV
        另请参阅
        常量字段值
      • COLOR_YUV2BGR_UYNV

        public static final int COLOR_YUV2BGR_UYNV
        另请参阅
        常量字段值
      • COLOR_YUV2RGBA_UYVY

        public static final int COLOR_YUV2RGBA_UYVY
        另请参阅
        常量字段值
      • COLOR_YUV2BGRA_UYVY

        public static final int COLOR_YUV2BGRA_UYVY
        另请参阅
        常量字段值
      • COLOR_YUV2RGBA_Y422

        public static final int COLOR_YUV2RGBA_Y422
        另请参阅
        常量字段值
      • COLOR_YUV2BGRA_Y422

        public static final int COLOR_YUV2BGRA_Y422
        另请参阅
        常量字段值
      • COLOR_YUV2RGBA_UYNV

        public static final int COLOR_YUV2RGBA_UYNV
        另请参阅
        常量字段值
      • COLOR_YUV2BGRA_UYNV

        public static final int COLOR_YUV2BGRA_UYNV
        另请参阅
        常量字段值
      • COLOR_YUV2RGB_YUY2

        public static final int COLOR_YUV2RGB_YUY2
        另请参阅
        常量字段值
      • COLOR_YUV2BGR_YUY2

        public static final int COLOR_YUV2BGR_YUY2
        另请参阅
        常量字段值
      • COLOR_YUV2RGB_YVYU

        public static final int COLOR_YUV2RGB_YVYU
        另请参阅
        常量字段值
      • COLOR_YUV2BGR_YVYU

        public static final int COLOR_YUV2BGR_YVYU
        另请参阅
        常量字段值
      • COLOR_YUV2RGB_YUYV

        public static final int COLOR_YUV2RGB_YUYV
        另请参阅
        常量字段值
      • COLOR_YUV2BGR_YUYV

        public static final int COLOR_YUV2BGR_YUYV
        另请参阅
        常量字段值
      • COLOR_YUV2RGB_YUNV

        public static final int COLOR_YUV2RGB_YUNV
        另请参阅
        常量字段值
      • COLOR_YUV2BGR_YUNV

        public static final int COLOR_YUV2BGR_YUNV
        另请参阅
        常量字段值
      • COLOR_YUV2RGBA_YUY2

        public static final int COLOR_YUV2RGBA_YUY2
        另请参阅
        常量字段值
      • COLOR_YUV2BGRA_YUY2

        public static final int COLOR_YUV2BGRA_YUY2
        另请参阅
        常量字段值
      • COLOR_YUV2RGBA_YVYU

        public static final int COLOR_YUV2RGBA_YVYU
        另请参阅
        常量字段值
      • COLOR_YUV2BGRA_YVYU

        public static final int COLOR_YUV2BGRA_YVYU
        另请参阅
        常量字段值
      • COLOR_YUV2RGBA_YUYV

        public static final int COLOR_YUV2RGBA_YUYV
        另请参阅
        常量字段值
      • COLOR_YUV2BGRA_YUYV

        public static final int COLOR_YUV2BGRA_YUYV
        另请参阅
        常量字段值
      • COLOR_YUV2RGBA_YUNV

        public static final int COLOR_YUV2RGBA_YUNV
        另请参阅
        常量字段值
      • COLOR_YUV2BGRA_YUNV

        public static final int COLOR_YUV2BGRA_YUNV
        另请参阅
        常量字段值
      • COLOR_YUV2GRAY_UYVY

        public static final int COLOR_YUV2GRAY_UYVY
        另请参阅
        常量字段值
      • COLOR_YUV2GRAY_YUY2

        public static final int COLOR_YUV2GRAY_YUY2
        另请参阅
        常量字段值
      • COLOR_YUV2GRAY_Y422

        public static final int COLOR_YUV2GRAY_Y422
        另请参阅
        常量字段值
      • COLOR_YUV2GRAY_UYNV

        public static final int COLOR_YUV2GRAY_UYNV
        另请参阅
        常量字段值
      • COLOR_YUV2GRAY_YVYU

        public static final int COLOR_YUV2GRAY_YVYU
        另请参阅
        常量字段值
      • COLOR_YUV2GRAY_YUYV

        public static final int COLOR_YUV2GRAY_YUYV
        另请参阅
        常量字段值
      • COLOR_YUV2GRAY_YUNV

        public static final int COLOR_YUV2GRAY_YUNV
        另请参阅
        常量字段值
      • COLOR_RGBA2mRGBA

        public static final int COLOR_RGBA2mRGBA
        另请参阅
        常量字段值
      • COLOR_mRGBA2RGBA

        public static final int COLOR_mRGBA2RGBA
        另请参阅
        常量字段值
      • COLOR_RGB2YUV_I420

        public static final int COLOR_RGB2YUV_I420
        另请参阅
        常量字段值
      • COLOR_BGR2YUV_I420

        public static final int COLOR_BGR2YUV_I420
        另请参阅
        常量字段值
      • COLOR_RGB2YUV_IYUV

        public static final int COLOR_RGB2YUV_IYUV
        另请参阅
        常量字段值
      • COLOR_BGR2YUV_IYUV

        public static final int COLOR_BGR2YUV_IYUV
        另请参阅
        常量字段值
      • COLOR_RGBA2YUV_I420

        public static final int COLOR_RGBA2YUV_I420
        另请参阅
        常量字段值
      • COLOR_BGRA2YUV_I420

        public static final int COLOR_BGRA2YUV_I420
        另请参阅
        常量字段值
      • COLOR_RGBA2YUV_IYUV

        public static final int COLOR_RGBA2YUV_IYUV
        另请参阅
        常量字段值
      • COLOR_BGRA2YUV_IYUV

        public static final int COLOR_BGRA2YUV_IYUV
        另请参阅
        常量字段值
      • COLOR_RGB2YUV_YV12

        public static final int COLOR_RGB2YUV_YV12
        另请参阅
        常量字段值
      • COLOR_BGR2YUV_YV12

        public static final int COLOR_BGR2YUV_YV12
        另请参阅
        常量字段值
      • COLOR_RGBA2YUV_YV12

        public static final int COLOR_RGBA2YUV_YV12
        另请参阅
        常量字段值
      • COLOR_BGRA2YUV_YV12

        public static final int COLOR_BGRA2YUV_YV12
        另请参阅
        常量字段值
      • COLOR_BayerBG2BGR

        public static final int COLOR_BayerBG2BGR
        另请参阅
        常量字段值
      • COLOR_BayerGB2BGR

        public static final int COLOR_BayerGB2BGR
        另请参阅
        常量字段值
      • COLOR_BayerRG2BGR

        public static final int COLOR_BayerRG2BGR
        另请参阅
        常量字段值
      • COLOR_BayerGR2BGR

        public static final int COLOR_BayerGR2BGR
        另请参阅
        常量字段值
      • COLOR_BayerRGGB2BGR

        public static final int COLOR_BayerRGGB2BGR
        另请参阅
        常量字段值
      • COLOR_BayerGRBG2BGR

        public static final int COLOR_BayerGRBG2BGR
        另请参阅
        常量字段值
      • COLOR_BayerBGGR2BGR

        public static final int COLOR_BayerBGGR2BGR
        另请参阅
        常量字段值
      • COLOR_BayerGBRG2BGR

        public static final int COLOR_BayerGBRG2BGR
        另请参阅
        常量字段值
      • COLOR_BayerRGGB2RGB

        public static final int COLOR_BayerRGGB2RGB
        另请参阅
        常量字段值
      • COLOR_BayerGRBG2RGB

        public static final int COLOR_BayerGRBG2RGB
        另请参阅
        常量字段值
      • COLOR_BayerBGGR2RGB

        public static final int COLOR_BayerBGGR2RGB
        另请参阅
        常量字段值
      • COLOR_BayerGBRG2RGB

        public static final int COLOR_BayerGBRG2RGB
        另请参阅
        常量字段值
      • COLOR_BayerBG2RGB

        public static final int COLOR_BayerBG2RGB
        另请参阅
        常量字段值
      • COLOR_BayerGB2RGB

        public static final int COLOR_BayerGB2RGB
        另请参阅
        常量字段值
      • COLOR_BayerRG2RGB

        public static final int COLOR_BayerRG2RGB
        另请参阅
        常量字段值
      • COLOR_BayerGR2RGB

        public static final int COLOR_BayerGR2RGB
        另请参阅
        常量字段值
      • COLOR_BayerBG2GRAY

        public static final int COLOR_BayerBG2GRAY
        另请参阅
        常量字段值
      • COLOR_BayerGB2GRAY

        public static final int COLOR_BayerGB2GRAY
        另请参阅
        常量字段值
      • COLOR_BayerRG2GRAY

        public static final int COLOR_BayerRG2GRAY
        另请参阅
        常量字段值
      • COLOR_BayerGR2GRAY

        public static final int COLOR_BayerGR2GRAY
        另请参阅
        常量字段值
      • COLOR_BayerRGGB2GRAY

        public static final int COLOR_BayerRGGB2GRAY
        另请参阅
        常量字段值
      • COLOR_BayerGRBG2GRAY

        public static final int COLOR_BayerGRBG2GRAY
        另请参阅
        常量字段值
      • COLOR_BayerBGGR2GRAY

        public static final int COLOR_BayerBGGR2GRAY
        另请参阅
        常量字段值
      • COLOR_BayerGBRG2GRAY

        public static final int COLOR_BayerGBRG2GRAY
        另请参阅
        常量字段值
      • COLOR_BayerBG2BGR_VNG

        public static final int COLOR_BayerBG2BGR_VNG
        另请参阅
        常量字段值
      • COLOR_BayerGB2BGR_VNG

        public static final int COLOR_BayerGB2BGR_VNG
        另请参阅
        常量字段值
      • COLOR_BayerRG2BGR_VNG

        public static final int COLOR_BayerRG2BGR_VNG
        另请参阅
        常量字段值
      • COLOR_BayerGR2BGR_VNG

        public static final int COLOR_BayerGR2BGR_VNG
        另请参阅
        常量字段值
      • COLOR_BayerRGGB2BGR_VNG

        public static final int COLOR_BayerRGGB2BGR_VNG
        另请参阅
        常量字段值
      • COLOR_BayerGRBG2BGR_VNG

        public static final int COLOR_BayerGRBG2BGR_VNG
        另请参阅
        常量字段值
      • COLOR_BayerBGGR2BGR_VNG

        public static final int COLOR_BayerBGGR2BGR_VNG
        另请参阅
        常量字段值
      • COLOR_BayerGBRG2BGR_VNG

        public static final int COLOR_BayerGBRG2BGR_VNG
        另请参阅
        常量字段值
      • COLOR_BayerRGGB2RGB_VNG

        public static final int COLOR_BayerRGGB2RGB_VNG
        另请参阅
        常量字段值
      • COLOR_BayerGRBG2RGB_VNG

        public static final int COLOR_BayerGRBG2RGB_VNG
        另请参阅
        常量字段值
      • COLOR_BayerBGGR2RGB_VNG

        public static final int COLOR_BayerBGGR2RGB_VNG
        另请参阅
        常量字段值
      • COLOR_BayerGBRG2RGB_VNG

        public static final int COLOR_BayerGBRG2RGB_VNG
        另请参阅
        常量字段值
      • COLOR_BayerBG2RGB_VNG

        public static final int COLOR_BayerBG2RGB_VNG
        另请参阅
        常量字段值
      • COLOR_BayerGB2RGB_VNG

        public static final int COLOR_BayerGB2RGB_VNG
        另请参阅
        常量字段值
      • COLOR_BayerRG2RGB_VNG

        public static final int COLOR_BayerRG2RGB_VNG
        另请参阅
        常量字段值
      • COLOR_BayerGR2RGB_VNG

        public static final int COLOR_BayerGR2RGB_VNG
        另请参阅
        常量字段值
      • COLOR_BayerBG2BGR_EA

        public static final int COLOR_BayerBG2BGR_EA
        另请参阅
        常量字段值
      • COLOR_BayerGB2BGR_EA

        public static final int COLOR_BayerGB2BGR_EA
        另请参阅
        常量字段值
      • COLOR_BayerRG2BGR_EA

        public static final int COLOR_BayerRG2BGR_EA
        另请参阅
        常量字段值
      • COLOR_BayerGR2BGR_EA

        public static final int COLOR_BayerGR2BGR_EA
        另请参阅
        常量字段值
      • COLOR_BayerRGGB2BGR_EA

        public static final int COLOR_BayerRGGB2BGR_EA
        另请参阅
        常量字段值
      • COLOR_BayerGRBG2BGR_EA

        public static final int COLOR_BayerGRBG2BGR_EA
        另请参阅
        常量字段值
      • COLOR_BayerBGGR2BGR_EA

        public static final int COLOR_BayerBGGR2BGR_EA
        另请参阅
        常量字段值
      • COLOR_BayerGBRG2BGR_EA

        public static final int COLOR_BayerGBRG2BGR_EA
        另请参阅
        常量字段值
      • COLOR_BayerRGGB2RGB_EA

        public static final int COLOR_BayerRGGB2RGB_EA
        另请参阅
        常量字段值
      • COLOR_BayerGRBG2RGB_EA

        public static final int COLOR_BayerGRBG2RGB_EA
        另请参阅
        常量字段值
      • COLOR_BayerBGGR2RGB_EA

        public static final int COLOR_BayerBGGR2RGB_EA
        另请参阅
        常量字段值
      • COLOR_BayerGBRG2RGB_EA

        public static final int COLOR_BayerGBRG2RGB_EA
        另请参阅
        常量字段值
      • COLOR_BayerBG2RGB_EA

        public static final int COLOR_BayerBG2RGB_EA
        另请参阅
        常量字段值
      • COLOR_BayerGB2RGB_EA

        public static final int COLOR_BayerGB2RGB_EA
        另请参阅
        常量字段值
      • COLOR_BayerRG2RGB_EA

        public static final int COLOR_BayerRG2RGB_EA
        另请参阅
        常量字段值
      • COLOR_BayerGR2RGB_EA

        public static final int COLOR_BayerGR2RGB_EA
        另请参阅
        常量字段值
      • COLOR_BayerBG2BGRA

        public static final int COLOR_BayerBG2BGRA
        另请参阅
        常量字段值
      • COLOR_BayerGB2BGRA

        public static final int COLOR_BayerGB2BGRA
        另请参阅
        常量字段值
      • COLOR_BayerRG2BGRA

        public static final int COLOR_BayerRG2BGRA
        另请参阅
        常量字段值
      • COLOR_BayerGR2BGRA

        public static final int COLOR_BayerGR2BGRA
        另请参阅
        常量字段值
      • COLOR_BayerRGGB2BGRA

        public static final int COLOR_BayerRGGB2BGRA
        另请参阅
        常量字段值
      • COLOR_BayerGRBG2BGRA

        public static final int COLOR_BayerGRBG2BGRA
        另请参阅
        常量字段值
      • COLOR_BayerBGGR2BGRA

        public static final int COLOR_BayerBGGR2BGRA
        另请参阅
        常量字段值
      • COLOR_BayerGBRG2BGRA

        public static final int COLOR_BayerGBRG2BGRA
        另请参阅
        常量字段值
      • COLOR_BayerRGGB2RGBA

        public static final int COLOR_BayerRGGB2RGBA
        另请参阅
        常量字段值
      • COLOR_BayerGRBG2RGBA

        public static final int COLOR_BayerGRBG2RGBA
        另请参阅
        常量字段值
      • COLOR_BayerBGGR2RGBA

        public static final int COLOR_BayerBGGR2RGBA
        另请参阅
        常量字段值
      • COLOR_BayerGBRG2RGBA

        public static final int COLOR_BayerGBRG2RGBA
        另请参阅
        常量字段值
      • COLOR_BayerBG2RGBA

        public static final int COLOR_BayerBG2RGBA
        另请参阅
        常量字段值
      • COLOR_BayerGB2RGBA

        public static final int COLOR_BayerGB2RGBA
        另请参阅
        常量字段值
      • COLOR_BayerRG2RGBA

        public static final int COLOR_BayerRG2RGBA
        另请参阅
        常量字段值
      • COLOR_BayerGR2RGBA

        public static final int COLOR_BayerGR2RGBA
        另请参阅
        常量字段值
      • COLOR_RGB2YUV_UYVY

        public static final int COLOR_RGB2YUV_UYVY
        另请参阅
        常量字段值
      • COLOR_BGR2YUV_UYVY

        public static final int COLOR_BGR2YUV_UYVY
        另请参阅
        常量字段值
      • COLOR_RGB2YUV_Y422

        public static final int COLOR_RGB2YUV_Y422
        另请参阅
        常量字段值
      • COLOR_BGR2YUV_Y422

        public static final int COLOR_BGR2YUV_Y422
        另请参阅
        常量字段值
      • COLOR_RGB2YUV_UYNV

        public static final int COLOR_RGB2YUV_UYNV
        另请参阅
        常量字段值
      • COLOR_BGR2YUV_UYNV

        public static final int COLOR_BGR2YUV_UYNV
        另请参阅
        常量字段值
      • COLOR_RGBA2YUV_UYVY

        public static final int COLOR_RGBA2YUV_UYVY
        另请参阅
        常量字段值
      • COLOR_BGRA2YUV_UYVY

        public static final int COLOR_BGRA2YUV_UYVY
        另请参阅
        常量字段值
      • COLOR_RGBA2YUV_Y422

        public static final int COLOR_RGBA2YUV_Y422
        另请参阅
        常量字段值
      • COLOR_BGRA2YUV_Y422

        public static final int COLOR_BGRA2YUV_Y422
        另请参阅
        常量字段值
      • COLOR_RGBA2YUV_UYNV

        public static final int COLOR_RGBA2YUV_UYNV
        另请参阅
        常量字段值
      • COLOR_BGRA2YUV_UYNV

        public static final int COLOR_BGRA2YUV_UYNV
        另请参阅
        常量字段值
      • COLOR_RGB2YUV_YUY2

        public static final int COLOR_RGB2YUV_YUY2
        另请参阅
        常量字段值
      • COLOR_BGR2YUV_YUY2

        public static final int COLOR_BGR2YUV_YUY2
        另请参阅
        常量字段值
      • COLOR_RGB2YUV_YVYU

        public static final int COLOR_RGB2YUV_YVYU
        另请参阅
        常量字段值
      • COLOR_BGR2YUV_YVYU

        public static final int COLOR_BGR2YUV_YVYU
        另请参阅
        常量字段值
      • COLOR_RGB2YUV_YUYV

        public static final int COLOR_RGB2YUV_YUYV
        另请参阅
        常量字段值
      • COLOR_BGR2YUV_YUYV

        public static final int COLOR_BGR2YUV_YUYV
        另请参阅
        常量字段值
      • COLOR_RGB2YUV_YUNV

        public static final int COLOR_RGB2YUV_YUNV
        另请参阅
        常量字段值
      • COLOR_BGR2YUV_YUNV

        public static final int COLOR_BGR2YUV_YUNV
        另请参阅
        常量字段值
      • COLOR_RGBA2YUV_YUY2

        public static final int COLOR_RGBA2YUV_YUY2
        另请参阅
        常量字段值
      • COLOR_BGRA2YUV_YUY2

        public static final int COLOR_BGRA2YUV_YUY2
        另请参阅
        常量字段值
      • COLOR_RGBA2YUV_YVYU

        public static final int COLOR_RGBA2YUV_YVYU
        另请参阅
        常量字段值
      • COLOR_BGRA2YUV_YVYU

        public static final int COLOR_BGRA2YUV_YVYU
        另请参阅
        常量字段值
      • COLOR_RGBA2YUV_YUYV

        public static final int COLOR_RGBA2YUV_YUYV
        另请参阅
        常量字段值
      • COLOR_BGRA2YUV_YUYV

        public static final int COLOR_BGRA2YUV_YUYV
        另请参阅
        常量字段值
      • COLOR_RGBA2YUV_YUNV

        public static final int COLOR_RGBA2YUV_YUNV
        另请参阅
        常量字段值
      • COLOR_BGRA2YUV_YUNV

        public static final int COLOR_BGRA2YUV_YUNV
        另请参阅
        常量字段值
      • COLOR_COLORCVT_MAX

        public static final int COLOR_COLORCVT_MAX
        另请参阅
        常量字段值
      • COLORMAP_AUTUMN

        public static final int COLORMAP_AUTUMN
        另请参阅
        常量字段值
      • COLORMAP_BONE

        public static final int COLORMAP_BONE
        另请参阅
        常量字段值
      • COLORMAP_JET

        public static final int COLORMAP_JET
        另请参阅
        常量字段值
      • COLORMAP_WINTER

        public static final int COLORMAP_WINTER
        另请参阅
        常量字段值
      • COLORMAP_RAINBOW

        public static final int COLORMAP_RAINBOW
        另请参阅
        常量字段值
      • COLORMAP_OCEAN

        public static final int COLORMAP_OCEAN
        另请参阅
        常量字段值
      • COLORMAP_SUMMER

        public static final int COLORMAP_SUMMER
        另请参阅
        常量字段值
      • COLORMAP_SPRING

        public static final int COLORMAP_SPRING
        另请参阅
        常量字段值
      • COLORMAP_COOL

        public static final int COLORMAP_COOL
        另请参阅
        常量字段值
      • COLORMAP_HSV

        public static final int COLORMAP_HSV
        另请参阅
        常量字段值
      • COLORMAP_PINK

        public static final int COLORMAP_PINK
        另请参阅
        常量字段值
      • COLORMAP_HOT

        public static final int COLORMAP_HOT
        另请参阅
        常量字段值
      • COLORMAP_PARULA

        public static final int COLORMAP_PARULA
        另请参阅
        常量字段值
      • COLORMAP_MAGMA

        public static final int COLORMAP_MAGMA
        另请参阅
        常量字段值
      • COLORMAP_INFERNO

        public static final int COLORMAP_INFERNO
        另请参阅
        常量字段值
      • COLORMAP_PLASMA

        public static final int COLORMAP_PLASMA
        另请参阅
        常量字段值
      • COLORMAP_VIRIDIS

        public static final int COLORMAP_VIRIDIS
        另请参阅
        常量字段值
      • COLORMAP_CIVIDIS

        public static final int COLORMAP_CIVIDIS
        另请参阅
        常量字段值
      • COLORMAP_TWILIGHT

        public static final int COLORMAP_TWILIGHT
        另请参阅
        常量字段值
      • COLORMAP_TWILIGHT_SHIFTED

        public static final int COLORMAP_TWILIGHT_SHIFTED
        另请参阅
        常量字段值
      • COLORMAP_TURBO

        public static final int COLORMAP_TURBO
        另请参阅
        常量字段值
      • COLORMAP_DEEPGREEN

        public static final int COLORMAP_DEEPGREEN
        另请参阅
        常量字段值
      • CCL_DEFAULT

        public static final int CCL_DEFAULT
        另请参阅
        常量字段值
      • CCL_GRANA

        public static final int CCL_GRANA
        另请参阅
        常量字段值
      • CCL_BOLELLI

        public static final int CCL_BOLELLI
        另请参阅
        常量字段值
      • CCL_SPAGHETTI

        public static final int CCL_SPAGHETTI
        另请参阅
        常量字段值
      • CC_STAT_LEFT

        public static final int CC_STAT_LEFT
        另请参阅
        常量字段值
      • CC_STAT_TOP

        public static final int CC_STAT_TOP
        另请参阅
        常量字段值
      • CC_STAT_WIDTH

        public static final int CC_STAT_WIDTH
        另请参阅
        常量字段值
      • CC_STAT_HEIGHT

        public static final int CC_STAT_HEIGHT
        另请参阅
        常量字段值
      • CC_STAT_AREA

        public static final int CC_STAT_AREA
        另请参阅
        常量字段值
      • CC_STAT_MAX

        public static final int CC_STAT_MAX
        另请参阅
        常量字段值
      • CHAIN_APPROX_NONE

        public static final int CHAIN_APPROX_NONE
        另请参阅
        常量字段值
      • CHAIN_APPROX_SIMPLE

        public static final int CHAIN_APPROX_SIMPLE
        另请参阅
        常量字段值
      • CHAIN_APPROX_TC89_L1

        public static final int CHAIN_APPROX_TC89_L1
        另请参阅
        常量字段值
      • CHAIN_APPROX_TC89_KCOS

        public static final int CHAIN_APPROX_TC89_KCOS
        另请参阅
        常量字段值
      • DIST_LABEL_CCOMP

        public static final int DIST_LABEL_CCOMP
        另请参阅
        常量字段值
      • DIST_LABEL_PIXEL

        public static final int DIST_LABEL_PIXEL
        另请参阅
        常量字段值
      • DIST_MASK_3

        public static final int DIST_MASK_3
        另请参阅
        常量字段值
      • DIST_MASK_5

        public static final int DIST_MASK_5
        另请参阅
        常量字段值
      • DIST_MASK_PRECISE

        public static final int DIST_MASK_PRECISE
        另请参阅
        常量字段值
      • DIST_USER

        public static final int DIST_USER
        另请参阅
        常量字段值
      • DIST_FAIR

        public static final int DIST_FAIR
        另请参阅
        常量字段值
      • DIST_WELSCH

        public static final int DIST_WELSCH
        另请参阅
        常量字段值
      • DIST_HUBER

        public static final int DIST_HUBER
        另请参阅
        常量字段值
      • FLOODFILL_FIXED_RANGE

        public static final int FLOODFILL_FIXED_RANGE
        另请参阅
        常量字段值
      • FLOODFILL_MASK_ONLY

        public static final int FLOODFILL_MASK_ONLY
        另请参阅
        常量字段值
      • GC_PR_BGD

        public static final int GC_PR_BGD
        另请参阅
        常量字段值
      • GC_PR_FGD

        public static final int GC_PR_FGD
        另请参阅
        常量字段值
      • GC_INIT_WITH_RECT

        public static final int GC_INIT_WITH_RECT
        另请参阅
        常量字段值
      • GC_INIT_WITH_MASK

        public static final int GC_INIT_WITH_MASK
        另请参阅
        常量字段值
      • GC_EVAL_FREEZE_MODEL

        public static final int GC_EVAL_FREEZE_MODEL
        另请参阅
        常量字段值
      • FONT_HERSHEY_SIMPLEX

        public static final int FONT_HERSHEY_SIMPLEX
        另请参阅
        常量字段值
      • FONT_HERSHEY_PLAIN

        public static final int FONT_HERSHEY_PLAIN
        另请参阅
        常量字段值
      • FONT_HERSHEY_DUPLEX

        public static final int FONT_HERSHEY_DUPLEX
        另请参阅
        常量字段值
      • FONT_HERSHEY_COMPLEX

        public static final int FONT_HERSHEY_COMPLEX
        另请参阅
        常量字段值
      • FONT_HERSHEY_TRIPLEX

        public static final int FONT_HERSHEY_TRIPLEX
        另请参阅
        常量字段值
      • FONT_HERSHEY_COMPLEX_SMALL

        public static final int FONT_HERSHEY_COMPLEX_SMALL
        另请参阅
        常量字段值
      • FONT_HERSHEY_SCRIPT_SIMPLEX

        public static final int FONT_HERSHEY_SCRIPT_SIMPLEX
        另请参阅
        常量字段值
      • FONT_HERSHEY_SCRIPT_COMPLEX

        public static final int FONT_HERSHEY_SCRIPT_COMPLEX
        另请参阅
        常量字段值
      • FONT_ITALIC

        public static final int FONT_ITALIC
        另请参阅
        常量字段值
      • HISTCMP_CORREL

        public static final int HISTCMP_CORREL
        另请参阅
        常量字段值
      • HISTCMP_CHISQR

        public static final int HISTCMP_CHISQR
        另请参阅
        常量字段值
      • HISTCMP_INTERSECT

        public static final int HISTCMP_INTERSECT
        另请参阅
        常量字段值
      • HISTCMP_BHATTACHARYYA

        public static final int HISTCMP_BHATTACHARYYA
        另请参阅
        常量字段值
      • HISTCMP_HELLINGER

        public static final int HISTCMP_HELLINGER
        另请参阅
        常量字段值
      • HISTCMP_CHISQR_ALT

        public static final int HISTCMP_CHISQR_ALT
        另请参阅
        常量字段值
      • HISTCMP_KL_DIV

        public static final int HISTCMP_KL_DIV
        另请参阅
        常量字段值
      • HOUGH_STANDARD

        public static final int HOUGH_STANDARD
        另请参阅
        常量字段值
      • HOUGH_PROBABILISTIC

        public static final int HOUGH_PROBABILISTIC
        另请参阅
        常量字段值
      • HOUGH_MULTI_SCALE

        public static final int HOUGH_MULTI_SCALE
        另请参阅
        常量字段值
      • HOUGH_GRADIENT

        public static final int HOUGH_GRADIENT
        另请参阅
        常量字段值
      • HOUGH_GRADIENT_ALT

        public static final int HOUGH_GRADIENT_ALT
        另请参阅
        常量字段值
      • INTER_NEAREST

        public static final int INTER_NEAREST
        另请参阅
        常量字段值
      • INTER_LINEAR

        public static final int INTER_LINEAR
        另请参阅
        常量字段值
      • INTER_CUBIC

        public static final int INTER_CUBIC
        另请参阅
        常量字段值
      • INTER_AREA

        public static final int INTER_AREA
        另请参阅
        常量字段值
      • INTER_LANCZOS4

        public static final int INTER_LANCZOS4
        另请参阅
        常量字段值
      • INTER_LINEAR_EXACT

        public static final int INTER_LINEAR_EXACT
        另请参阅
        常量字段值
      • INTER_NEAREST_EXACT

        public static final int INTER_NEAREST_EXACT
        另请参阅
        常量字段值
      • INTER_MAX

        public static final int INTER_MAX
        另请参阅
        常量字段值
      • WARP_FILL_OUTLIERS

        public static final int WARP_FILL_OUTLIERS
        另请参阅
        常量字段值
      • WARP_INVERSE_MAP

        public static final int WARP_INVERSE_MAP
        另请参阅
        常量字段值
      • WARP_RELATIVE_MAP

        public static final int WARP_RELATIVE_MAP
        另请参阅
        常量字段值
      • INTER_BITS

        public static final int INTER_BITS
        另请参阅
        常量字段值
      • INTER_BITS2

        public static final int INTER_BITS2
        另请参阅
        常量字段值
      • INTER_TAB_SIZE

        public static final int INTER_TAB_SIZE
        另请参阅
        常量字段值
      • INTER_TAB_SIZE2

        public static final int INTER_TAB_SIZE2
        另请参阅
        常量字段值
      • LSD_REFINE_NONE

        public static final int LSD_REFINE_NONE
        另请参阅
        常量字段值
      • LSD_REFINE_STD

        public static final int LSD_REFINE_STD
        另请参阅
        常量字段值
      • LSD_REFINE_ADV

        public static final int LSD_REFINE_ADV
        另请参阅
        常量字段值
      • MARKER_CROSS

        public static final int MARKER_CROSS
        另请参阅
        常量字段值
      • MARKER_TILTED_CROSS

        public static final int MARKER_TILTED_CROSS
        另请参阅
        常量字段值
      • MARKER_STAR

        public static final int MARKER_STAR
        另请参阅
        常量字段值
      • MARKER_DIAMOND

        public static final int MARKER_DIAMOND
        另请参阅
        常量字段值
      • MARKER_SQUARE

        public static final int MARKER_SQUARE
        另请参阅
        常量字段值
      • MARKER_TRIANGLE_UP

        public static final int MARKER_TRIANGLE_UP
        另请参阅
        常量字段值
      • MARKER_TRIANGLE_DOWN

        public static final int MARKER_TRIANGLE_DOWN
        另请参阅
        常量字段值
      • MORPH_RECT

        public static final int MORPH_RECT
        另请参阅
        常量字段值
      • MORPH_CROSS

        public static final int MORPH_CROSS
        另请参阅
        常量字段值
      • MORPH_ELLIPSE

        public static final int MORPH_ELLIPSE
        另请参阅
        常量字段值
      • MORPH_DIAMOND

        public static final int MORPH_DIAMOND
        另请参阅
        常量字段值
      • MORPH_ERODE

        public static final int MORPH_ERODE
        另请参阅
        常量字段值
      • MORPH_DILATE

        public static final int MORPH_DILATE
        另请参阅
        常量字段值
      • MORPH_OPEN

        public static final int MORPH_OPEN
        另请参阅
        常量字段值
      • MORPH_CLOSE

        public static final int MORPH_CLOSE
        另请参阅
        常量字段值
      • MORPH_GRADIENT

        public static final int MORPH_GRADIENT
        另请参阅
        常量字段值
      • MORPH_TOPHAT

        public static final int MORPH_TOPHAT
        另请参阅
        常量字段值
      • MORPH_BLACKHAT

        public static final int MORPH_BLACKHAT
        另请参阅
        常量字段值
      • MORPH_HITMISS

        public static final int MORPH_HITMISS
        另请参阅
        常量字段值
      • INTERSECT_NONE

        public static final int INTERSECT_NONE
        另请参阅
        常量字段值
      • INTERSECT_PARTIAL

        public static final int INTERSECT_PARTIAL
        另请参阅
        常量字段值
      • INTERSECT_FULL

        public static final int INTERSECT_FULL
        另请参阅
        常量字段值
      • RETR_EXTERNAL

        public static final int RETR_EXTERNAL
        另请参阅
        常量字段值
      • RETR_LIST

        public static final int RETR_LIST
        另请参阅
        常量字段值
      • RETR_CCOMP

        public static final int RETR_CCOMP
        另请参阅
        常量字段值
      • RETR_TREE

        public static final int RETR_TREE
        另请参阅
        常量字段值
      • RETR_FLOODFILL

        public static final int RETR_FLOODFILL
        另请参阅
        常量字段值
      • CONTOURS_MATCH_I1

        public static final int CONTOURS_MATCH_I1
        另请参阅
        常量字段值
      • CONTOURS_MATCH_I2

        public static final int CONTOURS_MATCH_I2
        另请参阅
        常量字段值
      • CONTOURS_MATCH_I3

        public static final int CONTOURS_MATCH_I3
        另请参阅
        常量字段值
      • FILTER_SCHARR

        public static final int FILTER_SCHARR
        另请参阅
        常量字段值
      • TM_SQDIFF

        public static final int TM_SQDIFF
        另请参阅
        常量字段值
      • TM_SQDIFF_NORMED

        public static final int TM_SQDIFF_NORMED
        另请参阅
        常量字段值
      • TM_CCORR_NORMED

        public static final int TM_CCORR_NORMED
        另请参阅
        常量字段值
      • TM_CCOEFF

        public static final int TM_CCOEFF
        另请参阅
        常量字段值
      • TM_CCOEFF_NORMED

        public static final int TM_CCOEFF_NORMED
        另请参阅
        常量字段值
      • THRESH_BINARY

        public static final int THRESH_BINARY
        另请参阅
        常量字段值
      • THRESH_BINARY_INV

        public static final int THRESH_BINARY_INV
        另请参阅
        常量字段值
      • THRESH_TRUNC

        public static final int THRESH_TRUNC
        另请参阅
        常量字段值
      • THRESH_TOZERO

        public static final int THRESH_TOZERO
        另请参阅
        常量字段值
      • THRESH_TOZERO_INV

        public static final int THRESH_TOZERO_INV
        另请参阅
        常量字段值
      • THRESH_MASK

        public static final int THRESH_MASK
        另请参阅
        常量字段值
      • THRESH_OTSU

        public static final int THRESH_OTSU
        另请参阅
        常量字段值
      • THRESH_TRIANGLE

        public static final int THRESH_TRIANGLE
        另请参阅
        常量字段值
      • THRESH_DRYRUN

        public static final int THRESH_DRYRUN
        另请参阅
        常量字段值
      • WARP_POLAR_LINEAR

        public static final int WARP_POLAR_LINEAR
        另请参阅
        常量字段值
      • WARP_POLAR_LOG

        public static final int WARP_POLAR_LOG
        另请参阅
        常量字段值
    • 构造函数详情

      • Imgproc

        public Imgproc()
    • 方法详情

      • createLineSegmentDetector

        public static LineSegmentDetector createLineSegmentDetector​(int refine,
                                                                    double scale,
                                                                    double sigma_scale,
                                                                    double quant,
                                                                    double ang_th,
                                                                    double log_eps,
                                                                    double density_th,
                                                                    int n_bins)
        创建 LineSegmentDetector 对象的智能指针并对其进行初始化。 LineSegmentDetector 算法使用标准值定义。只有高级用户可能希望编辑这些值,以便为其应用程序量身定制。 (Creates a smart pointer to a LineSegmentDetector object and initializes it. The LineSegmentDetector algorithm is defined using the standard values. Only advanced users may want to edit those, as to tailor it for their own application.)
        参数
        refine - 找到的线将如何细化,请参阅 #LineSegmentDetectorModes (refine - The way found lines will be refined, see #LineSegmentDetectorModes)
        scale - 用于查找直线的图像的比例。范围 (0..1]。 (scale - The scale of the image that will be used to find the lines. Range (0..1].)
        sigma_scale - 高斯滤波器的 Sigma。计算方法为 sigma = sigma_scale/scale。 (sigma_scale - Sigma for Gaussian filter. It is computed as sigma = sigma_scale/scale.)
        quant - 梯度范数上的量化误差界限。 (quant - Bound to the quantization error on the gradient norm.)
        ang_th - 梯度角度容差(度)。 (ang_th - Gradient angle tolerance in degrees.)
        log_eps - 检测阈值:-log10(NFA) > log_eps。仅在选择高级细化时使用。 (log_eps - Detection threshold: -log10(NFA) > log_eps. Used only when advance refinement is chosen.)
        density_th - 封闭矩形中对齐区域点的最小密度。 (density_th - Minimal density of aligned region points in the enclosing rectangle.)
        n_bins - 梯度模伪排序中的 bin 数量。 (n_bins - Number of bins in pseudo-ordering of gradient modulus.)
        返回
        自动生成
      • createLineSegmentDetector

        public static LineSegmentDetector createLineSegmentDetector​(int refine,
                                                                    double scale,
                                                                    double sigma_scale,
                                                                    double quant,
                                                                    double ang_th,
                                                                    double log_eps,
                                                                    double density_th)
        创建 LineSegmentDetector 对象的智能指针并对其进行初始化。 LineSegmentDetector 算法使用标准值定义。只有高级用户可能希望编辑这些值,以便为其应用程序量身定制。 (Creates a smart pointer to a LineSegmentDetector object and initializes it. The LineSegmentDetector algorithm is defined using the standard values. Only advanced users may want to edit those, as to tailor it for their own application.)
        参数
        refine - 找到的线将如何细化,请参阅 #LineSegmentDetectorModes (refine - The way found lines will be refined, see #LineSegmentDetectorModes)
        scale - 用于查找直线的图像的比例。范围 (0..1]。 (scale - The scale of the image that will be used to find the lines. Range (0..1].)
        sigma_scale - 高斯滤波器的 Sigma。计算方法为 sigma = sigma_scale/scale。 (sigma_scale - Sigma for Gaussian filter. It is computed as sigma = sigma_scale/scale.)
        quant - 梯度范数上的量化误差界限。 (quant - Bound to the quantization error on the gradient norm.)
        ang_th - 梯度角度容差(度)。 (ang_th - Gradient angle tolerance in degrees.)
        log_eps - 检测阈值:-log10(NFA) > log_eps。仅在选择高级细化时使用。 (log_eps - Detection threshold: -log10(NFA) > log_eps. Used only when advance refinement is chosen.)
        density_th - 封闭矩形中对齐区域点的最小密度。 (density_th - Minimal density of aligned region points in the enclosing rectangle.)
        返回
        自动生成
      • createLineSegmentDetector

        public static LineSegmentDetector createLineSegmentDetector​(int refine,
                                                                    double scale,
                                                                    double sigma_scale,
                                                                    double quant,
                                                                    double ang_th,
                                                                    double log_eps)
        创建 LineSegmentDetector 对象的智能指针并对其进行初始化。 LineSegmentDetector 算法使用标准值定义。只有高级用户可能希望编辑这些值,以便为其应用程序量身定制。 (Creates a smart pointer to a LineSegmentDetector object and initializes it. The LineSegmentDetector algorithm is defined using the standard values. Only advanced users may want to edit those, as to tailor it for their own application.)
        参数
        refine - 找到的线将如何细化,请参阅 #LineSegmentDetectorModes (refine - The way found lines will be refined, see #LineSegmentDetectorModes)
        scale - 用于查找直线的图像的比例。范围 (0..1]。 (scale - The scale of the image that will be used to find the lines. Range (0..1].)
        sigma_scale - 高斯滤波器的 Sigma。计算方法为 sigma = sigma_scale/scale。 (sigma_scale - Sigma for Gaussian filter. It is computed as sigma = sigma_scale/scale.)
        quant - 梯度范数上的量化误差界限。 (quant - Bound to the quantization error on the gradient norm.)
        ang_th - 梯度角度容差(度)。 (ang_th - Gradient angle tolerance in degrees.)
        log_eps - 检测阈值:-log10(NFA) > log_eps。仅在选择高级细化时使用。 (log_eps - Detection threshold: -log10(NFA) > log_eps. Used only when advance refinement is chosen.)
        返回
        自动生成
      • createLineSegmentDetector

        public static LineSegmentDetector createLineSegmentDetector​(int refine,
                                                                    double scale,
                                                                    double sigma_scale,
                                                                    double quant,
                                                                    double ang_th)
        创建 LineSegmentDetector 对象的智能指针并对其进行初始化。 LineSegmentDetector 算法使用标准值定义。只有高级用户可能希望编辑这些值,以便为其应用程序量身定制。 (Creates a smart pointer to a LineSegmentDetector object and initializes it. The LineSegmentDetector algorithm is defined using the standard values. Only advanced users may want to edit those, as to tailor it for their own application.)
        参数
        refine - 找到的线将如何细化,请参阅 #LineSegmentDetectorModes (refine - The way found lines will be refined, see #LineSegmentDetectorModes)
        scale - 用于查找直线的图像的比例。范围 (0..1]。 (scale - The scale of the image that will be used to find the lines. Range (0..1].)
        sigma_scale - 高斯滤波器的 Sigma。计算方法为 sigma = sigma_scale/scale。 (sigma_scale - Sigma for Gaussian filter. It is computed as sigma = sigma_scale/scale.)
        quant - 梯度范数上的量化误差界限。 (quant - Bound to the quantization error on the gradient norm.)
        ang_th - 梯度角度容差(度)。 (ang_th - Gradient angle tolerance in degrees.)
        返回
        自动生成
      • createLineSegmentDetector

        public static LineSegmentDetector createLineSegmentDetector​(int refine,
                                                                    double scale,
                                                                    double sigma_scale,
                                                                    double quant)
        创建 LineSegmentDetector 对象的智能指针并对其进行初始化。 LineSegmentDetector 算法使用标准值定义。只有高级用户可能希望编辑这些值,以便为其应用程序量身定制。 (Creates a smart pointer to a LineSegmentDetector object and initializes it. The LineSegmentDetector algorithm is defined using the standard values. Only advanced users may want to edit those, as to tailor it for their own application.)
        参数
        refine - 找到的线将如何细化,请参阅 #LineSegmentDetectorModes (refine - The way found lines will be refined, see #LineSegmentDetectorModes)
        scale - 用于查找直线的图像的比例。范围 (0..1]。 (scale - The scale of the image that will be used to find the lines. Range (0..1].)
        sigma_scale - 高斯滤波器的 Sigma。计算方法为 sigma = sigma_scale/scale。 (sigma_scale - Sigma for Gaussian filter. It is computed as sigma = sigma_scale/scale.)
        quant - 梯度范数上的量化误差界限。 (quant - Bound to the quantization error on the gradient norm.)
        返回
        自动生成
      • createLineSegmentDetector

        public static LineSegmentDetector createLineSegmentDetector​(int refine,
                                                                    double scale,
                                                                    double sigma_scale)
        创建 LineSegmentDetector 对象的智能指针并对其进行初始化。 LineSegmentDetector 算法使用标准值定义。只有高级用户可能希望编辑这些值,以便为其应用程序量身定制。 (Creates a smart pointer to a LineSegmentDetector object and initializes it. The LineSegmentDetector algorithm is defined using the standard values. Only advanced users may want to edit those, as to tailor it for their own application.)
        参数
        refine - 找到的线将如何细化,请参阅 #LineSegmentDetectorModes (refine - The way found lines will be refined, see #LineSegmentDetectorModes)
        scale - 用于查找直线的图像的比例。范围 (0..1]。 (scale - The scale of the image that will be used to find the lines. Range (0..1].)
        sigma_scale - 高斯滤波器的 Sigma。计算方法为 sigma = sigma_scale/scale。 (sigma_scale - Sigma for Gaussian filter. It is computed as sigma = sigma_scale/scale.)
        返回
        自动生成
      • createLineSegmentDetector

        public static LineSegmentDetector createLineSegmentDetector​(int refine,
                                                                    double scale)
        创建 LineSegmentDetector 对象的智能指针并对其进行初始化。 LineSegmentDetector 算法使用标准值定义。只有高级用户可能希望编辑这些值,以便为其应用程序量身定制。 (Creates a smart pointer to a LineSegmentDetector object and initializes it. The LineSegmentDetector algorithm is defined using the standard values. Only advanced users may want to edit those, as to tailor it for their own application.)
        参数
        refine - 找到的线将如何细化,请参阅 #LineSegmentDetectorModes (refine - The way found lines will be refined, see #LineSegmentDetectorModes)
        scale - 用于查找直线的图像的比例。范围 (0..1]。 (scale - The scale of the image that will be used to find the lines. Range (0..1].)
        返回
        自动生成
      • createLineSegmentDetector

        public static LineSegmentDetector createLineSegmentDetector​(int refine)
        创建 LineSegmentDetector 对象的智能指针并对其进行初始化。 LineSegmentDetector 算法使用标准值定义。只有高级用户可能希望编辑这些值,以便为其应用程序量身定制。 (Creates a smart pointer to a LineSegmentDetector object and initializes it. The LineSegmentDetector algorithm is defined using the standard values. Only advanced users may want to edit those, as to tailor it for their own application.)
        参数
        refine - 找到的线将如何细化,请参阅 #LineSegmentDetectorModes (refine - The way found lines will be refined, see #LineSegmentDetectorModes)
        返回
        自动生成
      • createLineSegmentDetector

        public static LineSegmentDetector createLineSegmentDetector()
        创建 LineSegmentDetector 对象的智能指针并对其进行初始化。 LineSegmentDetector 算法使用标准值定义。只有高级用户可能希望编辑这些值,以便为其应用程序量身定制。 (Creates a smart pointer to a LineSegmentDetector object and initializes it. The LineSegmentDetector algorithm is defined using the standard values. Only advanced users may want to edit those, as to tailor it for their own application.)
        返回
        自动生成
      • getGaussianKernel

        public static Mat getGaussianKernel​(int ksize,
                                            double sigma,
                                            int ktype)
        返回高斯滤波器系数。该函数计算并返回高斯滤波器系数的 \(\texttt{ksize} \times 1\) 矩阵: \(G_i= \alpha *e^{-(i-( \texttt{ksize} -1)/2)^2/(2* \texttt{sigma}^2)},\) 其中 \(i=0..\texttt{ksize}-1\) 并且 \(\alpha\) 是选择的比例因子,使得 \(\sum_i G_i=1\)。两个这样的生成内核可以传递给 sepFilter2D。这些函数会自动识别平滑内核(权重和等于 1 的对称内核)并相应地处理它们。您也可以使用更高级别的 GaussianBlur。 (Returns Gaussian filter coefficients. The function computes and returns the \(\texttt{ksize} \times 1\) matrix of Gaussian filter coefficients: \(G_i= \alpha *e^{-(i-( \texttt{ksize} -1)/2)^2/(2* \texttt{sigma}^2)},\) where \(i=0..\texttt{ksize}-1\) and \(\alpha\) is the scale factor chosen so that \(\sum_i G_i=1\). Two of such generated kernels can be passed to sepFilter2D. Those functions automatically recognize smoothing kernels (a symmetrical kernel with sum of weights equal to 1) and handle them accordingly. You may also use the higher-level GaussianBlur.)
        参数
        ksize - 光圈尺寸。它应该是奇数( \(\texttt{ksize} \mod 2 = 1\) )且为正。 (ksize - Aperture size. It should be odd ( \(\texttt{ksize} \mod 2 = 1\) ) and positive.)
        sigma - 高斯标准偏差。如果它非正,则从 ksize 计算得到,如 sigma = 0.3*((ksize-1)*0.5 - 1) + 0.8。 (sigma - Gaussian standard deviation. If it is non-positive, it is computed from ksize as sigma = 0.3*((ksize-1)*0.5 - 1) + 0.8.)
        ktype - 滤波器系数的类型。可以是 CV_32F 或 CV_64F。 SEE: sepFilter2D, getDerivKernels, getStructuringElement, GaussianBlur (ktype - Type of filter coefficients. It can be CV_32F or CV_64F . SEE: sepFilter2D, getDerivKernels, getStructuringElement, GaussianBlur)
        返回
        自动生成
      • getGaussianKernel

        public static Mat getGaussianKernel​(int ksize,
                                            double sigma)
        返回高斯滤波器系数。该函数计算并返回高斯滤波器系数的 \(\texttt{ksize} \times 1\) 矩阵: \(G_i= \alpha *e^{-(i-( \texttt{ksize} -1)/2)^2/(2* \texttt{sigma}^2)},\) 其中 \(i=0..\texttt{ksize}-1\) 并且 \(\alpha\) 是选择的比例因子,使得 \(\sum_i G_i=1\)。两个这样的生成内核可以传递给 sepFilter2D。这些函数会自动识别平滑内核(权重和等于 1 的对称内核)并相应地处理它们。您也可以使用更高级别的 GaussianBlur。 (Returns Gaussian filter coefficients. The function computes and returns the \(\texttt{ksize} \times 1\) matrix of Gaussian filter coefficients: \(G_i= \alpha *e^{-(i-( \texttt{ksize} -1)/2)^2/(2* \texttt{sigma}^2)},\) where \(i=0..\texttt{ksize}-1\) and \(\alpha\) is the scale factor chosen so that \(\sum_i G_i=1\). Two of such generated kernels can be passed to sepFilter2D. Those functions automatically recognize smoothing kernels (a symmetrical kernel with sum of weights equal to 1) and handle them accordingly. You may also use the higher-level GaussianBlur.)
        参数
        ksize - 光圈尺寸。它应该是奇数( \(\texttt{ksize} \mod 2 = 1\) )且为正。 (ksize - Aperture size. It should be odd ( \(\texttt{ksize} \mod 2 = 1\) ) and positive.)
        sigma - 高斯标准偏差。如果它非正,则从 ksize 计算得到,如 sigma = 0.3*((ksize-1)*0.5 - 1) + 0.8。 SEE: sepFilter2D, getDerivKernels, getStructuringElement, GaussianBlur (sigma - Gaussian standard deviation. If it is non-positive, it is computed from ksize as sigma = 0.3*((ksize-1)*0.5 - 1) + 0.8. SEE: sepFilter2D, getDerivKernels, getStructuringElement, GaussianBlur)
        返回
        自动生成
      • getDerivKernels

        public static void getDerivKernels​(Mat kx,
                                           Mat ky,
                                           int dx,
                                           int dy,
                                           int ksize,
                                           boolean normalize,
                                           int ktype)
        返回用于计算空间图像导数的滤波器系数。该函数计算并返回用于空间图像导数的滤波器系数。当 `ksize=FILTER_SCHARR` 时,生成 Scharr 3x3 内核(参见 #Scharr)。否则,生成 Sobel 内核(参见 #Sobel)。滤波器通常传递给 #sepFilter2D 或 (Returns filter coefficients for computing spatial image derivatives. The function computes and returns the filter coefficients for spatial image derivatives. When ksize=FILTER_SCHARR, the Scharr \(3 \times 3\) kernels are generated (see #Scharr). Otherwise, Sobel kernels are generated (see #Sobel). The filters are normally passed to #sepFilter2D or to)
        参数
        kx - 行滤波器系数的输出矩阵。类型为 ktype。 (kx - Output matrix of row filter coefficients. It has the type ktype .)
        ky - 列滤波器系数的输出矩阵。类型为 ktype。 (ky - Output matrix of column filter coefficients. It has the type ktype .)
        dx - 相对于 x 的导数阶数。 (dx - Derivative order in respect of x.)
        dy - 相对于 y 的导数阶数。 (dy - Derivative order in respect of y.)
        ksize - 光圈尺寸。可以是 FILTER_SCHARR, 1, 3, 5, 或 7。 (ksize - Aperture size. It can be FILTER_SCHARR, 1, 3, 5, or 7.)
        normalize - 指示是否对滤波器系数进行归一化(缩减)的标志。理论上,系数的分母应为 \(=2^{ksize*2-dx-dy-2}\)。如果您打算过滤浮点图像,您很可能需要使用归一化内核。但如果您计算 8 位图像的导数,将结果存储在 16 位图像中,并希望保留所有小数位,则可能希望将 normalize 设置为 false。 (normalize - Flag indicating whether to normalize (scale down) the filter coefficients or not. Theoretically, the coefficients should have the denominator \(=2^{ksize*2-dx-dy-2}\). If you are going to filter floating-point images, you are likely to use the normalized kernels. But if you compute derivatives of an 8-bit image, store the results in a 16-bit image, and wish to preserve all the fractional bits, you may want to set normalize=false .)
        ktype - 滤波器系数的类型。可以是 CV_32f 或 CV_64F。 (ktype - Type of filter coefficients. It can be CV_32f or CV_64F .)
      • getDerivKernels

        public static void getDerivKernels​(Mat kx,
                                           Mat ky,
                                           int dx,
                                           int dy,
                                           int ksize,
                                           boolean normalize)
        返回用于计算空间图像导数的滤波器系数。该函数计算并返回用于空间图像导数的滤波器系数。当 `ksize=FILTER_SCHARR` 时,生成 Scharr 3x3 内核(参见 #Scharr)。否则,生成 Sobel 内核(参见 #Sobel)。滤波器通常传递给 #sepFilter2D 或 (Returns filter coefficients for computing spatial image derivatives. The function computes and returns the filter coefficients for spatial image derivatives. When ksize=FILTER_SCHARR, the Scharr \(3 \times 3\) kernels are generated (see #Scharr). Otherwise, Sobel kernels are generated (see #Sobel). The filters are normally passed to #sepFilter2D or to)
        参数
        kx - 行滤波器系数的输出矩阵。类型为 ktype。 (kx - Output matrix of row filter coefficients. It has the type ktype .)
        ky - 列滤波器系数的输出矩阵。类型为 ktype。 (ky - Output matrix of column filter coefficients. It has the type ktype .)
        dx - 相对于 x 的导数阶数。 (dx - Derivative order in respect of x.)
        dy - 相对于 y 的导数阶数。 (dy - Derivative order in respect of y.)
        ksize - 光圈尺寸。可以是 FILTER_SCHARR, 1, 3, 5, 或 7。 (ksize - Aperture size. It can be FILTER_SCHARR, 1, 3, 5, or 7.)
        normalize - 指示是否对滤波器系数进行归一化(缩减)的标志。理论上,系数的分母应为 \(=2^{ksize*2-dx-dy-2}\)。如果您打算过滤浮点图像,您很可能需要使用归一化内核。但如果您计算 8 位图像的导数,将结果存储在 16 位图像中,并希望保留所有小数位,则可能希望将 normalize 设置为 false。 (normalize - Flag indicating whether to normalize (scale down) the filter coefficients or not. Theoretically, the coefficients should have the denominator \(=2^{ksize*2-dx-dy-2}\). If you are going to filter floating-point images, you are likely to use the normalized kernels. But if you compute derivatives of an 8-bit image, store the results in a 16-bit image, and wish to preserve all the fractional bits, you may want to set normalize=false .)
      • getDerivKernels

        public static void getDerivKernels​(Mat kx,
                                           Mat ky,
                                           int dx,
                                           int dy,
                                           int ksize)
        返回用于计算空间图像导数的滤波器系数。该函数计算并返回用于空间图像导数的滤波器系数。当 `ksize=FILTER_SCHARR` 时,生成 Scharr 3x3 内核(参见 #Scharr)。否则,生成 Sobel 内核(参见 #Sobel)。滤波器通常传递给 #sepFilter2D 或 (Returns filter coefficients for computing spatial image derivatives. The function computes and returns the filter coefficients for spatial image derivatives. When ksize=FILTER_SCHARR, the Scharr \(3 \times 3\) kernels are generated (see #Scharr). Otherwise, Sobel kernels are generated (see #Sobel). The filters are normally passed to #sepFilter2D or to)
        参数
        kx - 行滤波器系数的输出矩阵。类型为 ktype。 (kx - Output matrix of row filter coefficients. It has the type ktype .)
        ky - 列滤波器系数的输出矩阵。类型为 ktype。 (ky - Output matrix of column filter coefficients. It has the type ktype .)
        dx - 相对于 x 的导数阶数。 (dx - Derivative order in respect of x.)
        dy - 相对于 y 的导数阶数。 (dy - Derivative order in respect of y.)
        ksize - 光圈尺寸。可以是 FILTER_SCHARR, 1, 3, 5, 或 7。理论上,系数的分母应为 \(=2^{ksize*2-dx-dy-2}\)。如果您打算过滤浮点图像,您很可能需要使用归一化内核。但如果您计算 8 位图像的导数,将结果存储在 16 位图像中,并希望保留所有小数位,则可能希望将 normalize 设置为 false。 (ksize - Aperture size. It can be FILTER_SCHARR, 1, 3, 5, or 7. Theoretically, the coefficients should have the denominator \(=2^{ksize*2-dx-dy-2}\). If you are going to filter floating-point images, you are likely to use the normalized kernels. But if you compute derivatives of an 8-bit image, store the results in a 16-bit image, and wish to preserve all the fractional bits, you may want to set normalize=false .)
      • getGaborKernel

        public static Mat getGaborKernel​(Size ksize,
                                         double sigma,
                                         double theta,
                                         double lambd,
                                         double gamma,
                                         double psi,
                                         int ktype)
        返回 Gabor 滤波器系数。有关 Gabor 滤波器方程和参数的更多详细信息,请参阅:[Gabor 滤波器](https://en.wikipedia.org/wiki/Gabor_filter)。 (Returns Gabor filter coefficients. For more details about gabor filter equations and parameters, see: [Gabor Filter](https://en.wikipedia.org/wiki/Gabor_filter).)
        参数
        ksize - 返回的滤波器的尺寸。 (ksize - Size of the filter returned.)
        sigma - 高斯包络的标准偏差。 (sigma - Standard deviation of the gaussian envelope.)
        theta - Gabor 函数条纹法线的方向。 (theta - Orientation of the normal to the parallel stripes of a Gabor function.)
        lambd - 正弦因子波长。 (lambd - Wavelength of the sinusoidal factor.)
        gamma - 空间纵横比。 (gamma - Spatial aspect ratio.)
        psi - 相位偏移。 (psi - Phase offset.)
        ktype - 滤波器系数的类型。可以是 CV_32F 或 CV_64F。 (ktype - Type of filter coefficients. It can be CV_32F or CV_64F .)
        返回
        自动生成
      • getGaborKernel

        public static Mat getGaborKernel​(Size ksize,
                                         double sigma,
                                         double theta,
                                         double lambd,
                                         double gamma,
                                         double psi)
        返回 Gabor 滤波器系数。有关 Gabor 滤波器方程和参数的更多详细信息,请参阅:[Gabor 滤波器](https://en.wikipedia.org/wiki/Gabor_filter)。 (Returns Gabor filter coefficients. For more details about gabor filter equations and parameters, see: [Gabor Filter](https://en.wikipedia.org/wiki/Gabor_filter).)
        参数
        ksize - 返回的滤波器的尺寸。 (ksize - Size of the filter returned.)
        sigma - 高斯包络的标准偏差。 (sigma - Standard deviation of the gaussian envelope.)
        theta - Gabor 函数条纹法线的方向。 (theta - Orientation of the normal to the parallel stripes of a Gabor function.)
        lambd - 正弦因子波长。 (lambd - Wavelength of the sinusoidal factor.)
        gamma - 空间纵横比。 (gamma - Spatial aspect ratio.)
        psi - 相位偏移。 (psi - Phase offset.)
        返回
        自动生成
      • getGaborKernel

        public static Mat getGaborKernel​(Size ksize,
                                         double sigma,
                                         double theta,
                                         double lambd,
                                         double gamma)
        返回 Gabor 滤波器系数。有关 Gabor 滤波器方程和参数的更多详细信息,请参阅:[Gabor 滤波器](https://en.wikipedia.org/wiki/Gabor_filter)。 (Returns Gabor filter coefficients. For more details about gabor filter equations and parameters, see: [Gabor Filter](https://en.wikipedia.org/wiki/Gabor_filter).)
        参数
        ksize - 返回的滤波器的尺寸。 (ksize - Size of the filter returned.)
        sigma - 高斯包络的标准偏差。 (sigma - Standard deviation of the gaussian envelope.)
        theta - Gabor 函数条纹法线的方向。 (theta - Orientation of the normal to the parallel stripes of a Gabor function.)
        lambd - 正弦因子波长。 (lambd - Wavelength of the sinusoidal factor.)
        gamma - 空间纵横比。 (gamma - Spatial aspect ratio.)
        返回
        自动生成
      • getStructuringElement

        public static Mat getStructuringElement​(int shape,
                                                Size ksize,
                                                Point anchor)
        返回指定大小和形状的结构化元素,用于形态学运算。该函数构造并返回结构化元素,该元素可以进一步传递给 #erode, #dilate 或 #morphologyEx。但您也可以自行构造任意二进制掩码并将其用作结构化元素。 (Returns a structuring element of the specified size and shape for morphological operations. The function constructs and returns the structuring element that can be further passed to #erode, #dilate or #morphologyEx. But you can also construct an arbitrary binary mask yourself and use it as the structuring element.)
        参数
        shape - 元素形状,可以是 #MorphShapes 中的一个。 (shape - Element shape that could be one of #MorphShapes)
        ksize - 结构化元素的尺寸。 (ksize - Size of the structuring element.)
        anchor - 元素内的锚点位置。默认值 \((-1, -1)\) 表示锚点位于中心。请注意,只有十字形元素的形状才取决于锚点位置。在其他情况下,锚点仅调节形态学操作结果的移位量。 (anchor - Anchor position within the element. The default value \((-1, -1)\) means that the anchor is at the center. Note that only the shape of a cross-shaped element depends on the anchor position. In other cases the anchor just regulates how much the result of the morphological operation is shifted.)
        返回
        自动生成
      • getStructuringElement

        public static Mat getStructuringElement​(int shape,
                                                Size ksize)
        返回指定大小和形状的结构化元素,用于形态学运算。该函数构造并返回结构化元素,该元素可以进一步传递给 #erode, #dilate 或 #morphologyEx。但您也可以自行构造任意二进制掩码并将其用作结构化元素。 (Returns a structuring element of the specified size and shape for morphological operations. The function constructs and returns the structuring element that can be further passed to #erode, #dilate or #morphologyEx. But you can also construct an arbitrary binary mask yourself and use it as the structuring element.)
        参数
        shape - 元素形状,可以是 #MorphShapes 中的一个。 (shape - Element shape that could be one of #MorphShapes)
        ksize - 结构化元素的尺寸。锚点位于中心。请注意,只有十字形元素的形状才取决于锚点位置。在其他情况下,锚点仅调节形态学操作结果的移位量。 (ksize - Size of the structuring element. anchor is at the center. Note that only the shape of a cross-shaped element depends on the anchor position. In other cases the anchor just regulates how much the result of the morphological operation is shifted.)
        返回
        自动生成
      • medianBlur

        public static void medianBlur​(Mat src,
                                      Mat dst,
                                      int ksize)
        使用中值滤波器对图像进行模糊。该函数使用 \(\texttt{ksize} \times \texttt{ksize}\) 光圈对图像进行中值滤波。多通道图像的每个通道独立处理。支持就地操作。 注意:中值滤波器内部使用 #BORDER_REPLICATE 来处理边界像素,请参阅 #BorderTypes (Blurs an image using the median filter. The function smoothes an image using the median filter with the \(\texttt{ksize} \times \texttt{ksize}\) aperture. Each channel of a multi-channel image is processed independently. In-place operation is supported. Note: The median filter uses #BORDER_REPLICATE internally to cope with border pixels, see #BorderTypes)
        参数
        src - 输入 1、3 或 4 通道图像;当 ksize 为 3 或 5 时,图像深度应为 CV_8U、CV_16U 或 CV_32F;对于更大的光圈尺寸,只能是 CV_8U。 (src - input 1-, 3-, or 4-channel image; when ksize is 3 or 5, the image depth should be CV_8U, CV_16U, or CV_32F, for larger aperture sizes, it can only be CV_8U.)
        dst - 与 src 相同大小和类型的目标数组。 (dst - destination array of the same size and type as src.)
        ksize - 光圈线性尺寸;它必须是奇数且大于 1,例如:3、5、7... SEE: bilateralFilter, blur, boxFilter, GaussianBlur (ksize - aperture linear size; it must be odd and greater than 1, for example: 3, 5, 7 ... SEE: bilateralFilter, blur, boxFilter, GaussianBlur)
      • 高斯模糊 (GaussianBlur)

        public static void GaussianBlur​(Mat src,
                                        Mat dst,
                                        Size ksize,
                                        double sigmaX,
                                        double sigmaY,
                                        int borderType,
                                        int hint)
        使用高斯滤波器对图像进行模糊。该函数使用指定的 Gausssian 内核对源图像进行卷积。支持就地滤波。 (Blurs an image using a Gaussian filter. The function convolves the source image with the specified Gaussian kernel. In-place filtering is supported.)
        参数
        src - 输入图像;图像可以有任意数量的通道,这些通道独立处理,但深度应为 CV_8U、CV_16U、CV_16S、CV_32F 或 CV_64F。 (src - input image; the image can have any number of channels, which are processed independently, but the depth should be CV_8U, CV_16U, CV_16S, CV_32F or CV_64F.)
        dst - 与 src 相同大小和类型的输出图像。 (dst - output image of the same size and type as src.)
        ksize - 高斯内核大小。 ksize.width 和 ksize.height 可以不同,但它们都必须是正数且为奇数。或者,它们可以是零,然后从 sigma 计算得到。 (ksize - Gaussian kernel size. ksize.width and ksize.height can differ but they both must be positive and odd. Or, they can be zero's and then they are computed from sigma.)
        sigmaX - X 方向的高斯内核标准偏差。 (sigmaX - Gaussian kernel standard deviation in X direction.)
        sigmaY - Y 方向的高斯内核标准偏差;如果 sigmaY 为零,则将其设置为等于 sigmaX;如果两个 sigma 都为零,则分别从 ksize.width 和 ksize.height 计算得到(有关详细信息,请参阅 #getGaussianKernel);为了完全控制结果而不受可能发生的任何未来语义修改的影响,建议同时指定 ksize、sigmaX 和 sigmaY。 (sigmaY - Gaussian kernel standard deviation in Y direction; if sigmaY is zero, it is set to be equal to sigmaX, if both sigmas are zeros, they are computed from ksize.width and ksize.height, respectively (see #getGaussianKernel for details); to fully control the result regardless of possible future modifications of all this semantics, it is recommended to specify all of ksize, sigmaX, and sigmaY.)
        borderType - 像素外插方法,请参阅 #BorderTypes。 #BORDER_WRAP 不受支持。 (borderType - pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.)
        hint - 实现修改标志。请参阅 #AlgorithmHint SEE: sepFilter2D, filter2D, blur, boxFilter, bilateralFilter, medianBlur (hint - Implementation modfication flags. See #AlgorithmHint SEE: sepFilter2D, filter2D, blur, boxFilter, bilateralFilter, medianBlur)
      • 高斯模糊 (GaussianBlur)

        public static void GaussianBlur​(Mat src,
                                        Mat dst,
                                        Size ksize,
                                        double sigmaX,
                                        double sigmaY,
                                        int borderType)
        使用高斯滤波器对图像进行模糊。该函数使用指定的 Gausssian 内核对源图像进行卷积。支持就地滤波。 (Blurs an image using a Gaussian filter. The function convolves the source image with the specified Gaussian kernel. In-place filtering is supported.)
        参数
        src - 输入图像;图像可以有任意数量的通道,这些通道独立处理,但深度应为 CV_8U、CV_16U、CV_16S、CV_32F 或 CV_64F。 (src - input image; the image can have any number of channels, which are processed independently, but the depth should be CV_8U, CV_16U, CV_16S, CV_32F or CV_64F.)
        dst - 与 src 相同大小和类型的输出图像。 (dst - output image of the same size and type as src.)
        ksize - 高斯内核大小。 ksize.width 和 ksize.height 可以不同,但它们都必须是正数且为奇数。或者,它们可以是零,然后从 sigma 计算得到。 (ksize - Gaussian kernel size. ksize.width and ksize.height can differ but they both must be positive and odd. Or, they can be zero's and then they are computed from sigma.)
        sigmaX - X 方向的高斯内核标准偏差。 (sigmaX - Gaussian kernel standard deviation in X direction.)
        sigmaY - Y 方向的高斯内核标准偏差;如果 sigmaY 为零,则将其设置为等于 sigmaX;如果两个 sigma 都为零,则分别从 ksize.width 和 ksize.height 计算得到(有关详细信息,请参阅 #getGaussianKernel);为了完全控制结果而不受可能发生的任何未来语义修改的影响,建议同时指定 ksize、sigmaX 和 sigmaY。 (sigmaY - Gaussian kernel standard deviation in Y direction; if sigmaY is zero, it is set to be equal to sigmaX, if both sigmas are zeros, they are computed from ksize.width and ksize.height, respectively (see #getGaussianKernel for details); to fully control the result regardless of possible future modifications of all this semantics, it is recommended to specify all of ksize, sigmaX, and sigmaY.)
        borderType - 像素外插方法,请参阅 #BorderTypes。 #BORDER_WRAP 不受支持。 SEE: sepFilter2D, filter2D, blur, boxFilter, bilateralFilter, medianBlur (borderType - pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported. SEE: sepFilter2D, filter2D, blur, boxFilter, bilateralFilter, medianBlur)
      • 高斯模糊 (GaussianBlur)

        public static void GaussianBlur​(Mat src,
                                        Mat dst,
                                        Size ksize,
                                        double sigmaX,
                                        double sigmaY)
        使用高斯滤波器对图像进行模糊。该函数使用指定的 Gausssian 内核对源图像进行卷积。支持就地滤波。 (Blurs an image using a Gaussian filter. The function convolves the source image with the specified Gaussian kernel. In-place filtering is supported.)
        参数
        src - 输入图像;图像可以有任意数量的通道,这些通道独立处理,但深度应为 CV_8U、CV_16U、CV_16S、CV_32F 或 CV_64F。 (src - input image; the image can have any number of channels, which are processed independently, but the depth should be CV_8U, CV_16U, CV_16S, CV_32F or CV_64F.)
        dst - 与 src 相同大小和类型的输出图像。 (dst - output image of the same size and type as src.)
        ksize - 高斯内核大小。 ksize.width 和 ksize.height 可以不同,但它们都必须是正数且为奇数。或者,它们可以是零,然后从 sigma 计算得到。 (ksize - Gaussian kernel size. ksize.width and ksize.height can differ but they both must be positive and odd. Or, they can be zero's and then they are computed from sigma.)
        sigmaX - X 方向的高斯内核标准偏差。 (sigmaX - Gaussian kernel standard deviation in X direction.)
        sigmaY - Y 方向的高斯内核标准偏差;如果 sigmaY 为零,则将其设置为等于 sigmaX;如果两个 sigma 都为零,则分别从 ksize.width 和 ksize.height 计算得到(有关详细信息,请参阅 #getGaussianKernel);为了完全控制结果而不受可能发生的任何未来语义修改的影响,建议同时指定 ksize、sigmaX 和 sigmaY。 SEE: sepFilter2D, filter2D, blur, boxFilter, bilateralFilter, medianBlur (sigmaY - Gaussian kernel standard deviation in Y direction; if sigmaY is zero, it is set to be equal to sigmaX, if both sigmas are zeros, they are computed from ksize.width and ksize.height, respectively (see #getGaussianKernel for details); to fully control the result regardless of possible future modifications of all this semantics, it is recommended to specify all of ksize, sigmaX, and sigmaY. SEE: sepFilter2D, filter2D, blur, boxFilter, bilateralFilter, medianBlur)
      • 高斯模糊 (GaussianBlur)

        public static void GaussianBlur​(Mat src,
                                        Mat dst,
                                        Size ksize,
                                        double sigmaX)
        使用高斯滤波器对图像进行模糊。该函数使用指定的 Gausssian 内核对源图像进行卷积。支持就地滤波。 (Blurs an image using a Gaussian filter. The function convolves the source image with the specified Gaussian kernel. In-place filtering is supported.)
        参数
        src - 输入图像;图像可以有任意数量的通道,这些通道独立处理,但深度应为 CV_8U、CV_16U、CV_16S、CV_32F 或 CV_64F。 (src - input image; the image can have any number of channels, which are processed independently, but the depth should be CV_8U, CV_16U, CV_16S, CV_32F or CV_64F.)
        dst - 与 src 相同大小和类型的输出图像。 (dst - output image of the same size and type as src.)
        ksize - 高斯内核大小。 ksize.width 和 ksize.height 可以不同,但它们都必须是正数且为奇数。或者,它们可以是零,然后从 sigma 计算得到。 (ksize - Gaussian kernel size. ksize.width and ksize.height can differ but they both must be positive and odd. Or, they can be zero's and then they are computed from sigma.)
        sigmaX - X 方向的高斯内核标准偏差。等于 sigmaX,如果两个 sigma 都为零,则分别从 ksize.width 和 ksize.height 计算得到(有关详细信息,请参阅 #getGaussianKernel);为了完全控制结果而不受可能发生的任何未来语义修改的影响,建议同时指定 ksize、sigmaX 和 sigmaY。 SEE: sepFilter2D, filter2D, blur, boxFilter, bilateralFilter, medianBlur (sigmaX - Gaussian kernel standard deviation in X direction. equal to sigmaX, if both sigmas are zeros, they are computed from ksize.width and ksize.height, respectively (see #getGaussianKernel for details); to fully control the result regardless of possible future modifications of all this semantics, it is recommended to specify all of ksize, sigmaX, and sigmaY. SEE: sepFilter2D, filter2D, blur, boxFilter, bilateralFilter, medianBlur)
      • bilateralFilter

        public static void bilateralFilter​(Mat src,
                                           Mat dst,
                                           int d,
                                           double sigmaColor,
                                           double sigmaSpace,
                                           int borderType)
        对图像应用双边滤波器。该函数对输入图像应用双边滤波,如 https://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html 中所述,双边滤波器可以很好地减少不需要的噪声,同时保持边缘清晰。但是,与大多数滤波器相比,它的速度非常慢。 _Sigma 值_:为简单起见,您可以将两个 sigma 值设置为相同。如果它们很小(< 10),滤波器不会有太大影响,而如果它们很大(> 150),它们将产生非常强烈的影响,使图像看起来像“卡通”。 _滤波器大小_:大滤波器(d > 5)非常慢,因此建议在实时应用中使用 d=5,而在需要重度降噪的离线应用中使用 d=9。此滤波器不支持就地操作。 (Applies the bilateral filter to an image. The function applies bilateral filtering to the input image, as described in https://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html bilateralFilter can reduce unwanted noise very well while keeping edges fairly sharp. However, it is very slow compared to most filters. _Sigma values_: For simplicity, you can set the 2 sigma values to be the same. If they are small (< 10), the filter will not have much effect, whereas if they are large (> 150), they will have a very strong effect, making the image look "cartoonish". _Filter size_: Large filters (d > 5) are very slow, so it is recommended to use d=5 for real-time applications, and perhaps d=9 for offline applications that need heavy noise filtering. This filter does not work inplace.)
        参数
        src - 源 8 位或浮点型、1 通道或 3 通道图像。 (src - Source 8-bit or floating-point, 1-channel or 3-channel image.)
        dst - 与 src 相同大小和类型的目标图像。 (dst - Destination image of the same size and type as src .)
        d - 滤波期间使用的每个像素邻域的直径。如果它非正,则从 sigmaSpace 计算得到。 (d - Diameter of each pixel neighborhood that is used during filtering. If it is non-positive, it is computed from sigmaSpace.)
        sigmaColor - 颜色空间中的滤波器 sigma。该参数值越大,表示邻域(请参阅 sigmaSpace)中距离较远的颜色将混合在一起,从而产生更大面积的半均匀颜色。 (sigmaColor - Filter sigma in the color space. A larger value of the parameter means that farther colors within the pixel neighborhood (see sigmaSpace) will be mixed together, resulting in larger areas of semi-equal color.)
        sigmaSpace - 坐标空间中的滤波器 sigma。该参数值越大,表示距离较远的像素将相互影响,只要它们的颜色足够接近(请参阅 sigmaColor)。当 d>0 时,它指定邻域大小,与 sigmaSpace 无关。否则,d 与 sigmaSpace 成正比。 (sigmaSpace - Filter sigma in the coordinate space. A larger value of the parameter means that farther pixels will influence each other as long as their colors are close enough (see sigmaColor ). When d>0, it specifies the neighborhood size regardless of sigmaSpace. Otherwise, d is proportional to sigmaSpace.)
        borderType - 用于外插图像外部像素的边界模式,请参阅 #BorderTypes (borderType - border mode used to extrapolate pixels outside of the image, see #BorderTypes)
      • bilateralFilter

        public static void bilateralFilter​(Mat src,
                                           Mat dst,
                                           int d,
                                           double sigmaColor,
                                           double sigmaSpace)
        对图像应用双边滤波器。该函数对输入图像应用双边滤波,如 https://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html 中所述,双边滤波器可以很好地减少不需要的噪声,同时保持边缘清晰。但是,与大多数滤波器相比,它的速度非常慢。 _Sigma 值_:为简单起见,您可以将两个 sigma 值设置为相同。如果它们很小(< 10),滤波器不会有太大影响,而如果它们很大(> 150),它们将产生非常强烈的影响,使图像看起来像“卡通”。 _滤波器大小_:大滤波器(d > 5)非常慢,因此建议在实时应用中使用 d=5,而在需要重度降噪的离线应用中使用 d=9。此滤波器不支持就地操作。 (Applies the bilateral filter to an image. The function applies bilateral filtering to the input image, as described in https://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html bilateralFilter can reduce unwanted noise very well while keeping edges fairly sharp. However, it is very slow compared to most filters. _Sigma values_: For simplicity, you can set the 2 sigma values to be the same. If they are small (< 10), the filter will not have much effect, whereas if they are large (> 150), they will have a very strong effect, making the image look "cartoonish". _Filter size_: Large filters (d > 5) are very slow, so it is recommended to use d=5 for real-time applications, and perhaps d=9 for offline applications that need heavy noise filtering. This filter does not work inplace.)
        参数
        src - 源 8 位或浮点型、1 通道或 3 通道图像。 (src - Source 8-bit or floating-point, 1-channel or 3-channel image.)
        dst - 与 src 相同大小和类型的目标图像。 (dst - Destination image of the same size and type as src .)
        d - 滤波期间使用的每个像素邻域的直径。如果它非正,则从 sigmaSpace 计算得到。 (d - Diameter of each pixel neighborhood that is used during filtering. If it is non-positive, it is computed from sigmaSpace.)
        sigmaColor - 颜色空间中的滤波器 sigma。该参数值越大,表示邻域(请参阅 sigmaSpace)中距离较远的颜色将混合在一起,从而产生更大面积的半均匀颜色。 (sigmaColor - Filter sigma in the color space. A larger value of the parameter means that farther colors within the pixel neighborhood (see sigmaSpace) will be mixed together, resulting in larger areas of semi-equal color.)
        sigmaSpace - 坐标空间中的滤波器 sigma。该参数值越大,表示距离较远的像素将相互影响,只要它们的颜色足够接近(请参阅 sigmaColor)。当 d>0 时,它指定邻域大小,与 sigmaSpace 无关。否则,d 与 sigmaSpace 成正比。 (sigmaSpace - Filter sigma in the coordinate space. A larger value of the parameter means that farther pixels will influence each other as long as their colors are close enough (see sigmaColor ). When d>0, it specifies the neighborhood size regardless of sigmaSpace. Otherwise, d is proportional to sigmaSpace.)
      • boxFilter

        public static void boxFilter​(Mat src,
                                     Mat dst,
                                     int ddepth,
                                     Size ksize,
                                     Point anchor,
                                     boolean normalize,
                                     int borderType)
        使用盒式滤波器模糊图像。该函数使用以下核平滑图像:\(\texttt{K} = \alpha \begin{bmatrix} 1 & 1 & 1 & \cdots & 1 & 1 \\ 1 & 1 & 1 & \cdots & 1 & 1 \\ \hdotsfor{6} \\ 1 & 1 & 1 & \cdots & 1 & 1 \end{bmatrix}\),其中\(\alpha = \begin{cases} \frac{1}{\texttt{ksize.width*ksize.height}}} & \texttt{当 } \texttt{normalize=true} \\1 & \texttt{否则}\end{cases}\)。未归一化的盒式滤波器可用于计算每个像素邻域的各种积分特征,例如图像导数的协方差矩阵(用于密集光流算法等)。如果需要计算可变尺寸窗口内的像素和,请使用 #integral。
        参数
        src - 输入图像。
        dst - 与 src 相同大小和类型的输出图像。 (dst - output image of the same size and type as src.)
        ddepth - 输出图像深度(-1 表示使用 src.depth())。
        ksize - 模糊核大小。
        anchor - 锚点;默认值 Point(-1,-1) 表示锚点位于核的中心。
        normalize - 标志,指定核是否按其面积进行归一化。
        borderType - 用于外插图像外部像素的边界模式,请参阅 #BorderTypes。不支持 #BORDER_WRAP。另请参阅:blur、bilateralFilter、GaussianBlur、medianBlur、integral
      • boxFilter

        public static void boxFilter​(Mat src,
                                     Mat dst,
                                     int ddepth,
                                     Size ksize,
                                     Point anchor,
                                     boolean normalize)
        使用盒式滤波器模糊图像。该函数使用以下核平滑图像:\(\texttt{K} = \alpha \begin{bmatrix} 1 & 1 & 1 & \cdots & 1 & 1 \\ 1 & 1 & 1 & \cdots & 1 & 1 \\ \hdotsfor{6} \\ 1 & 1 & 1 & \cdots & 1 & 1 \end{bmatrix}\),其中\(\alpha = \begin{cases} \frac{1}{\texttt{ksize.width*ksize.height}}} & \texttt{当 } \texttt{normalize=true} \\1 & \texttt{否则}\end{cases}\)。未归一化的盒式滤波器可用于计算每个像素邻域的各种积分特征,例如图像导数的协方差矩阵(用于密集光流算法等)。如果需要计算可变尺寸窗口内的像素和,请使用 #integral。
        参数
        src - 输入图像。
        dst - 与 src 相同大小和类型的输出图像。 (dst - output image of the same size and type as src.)
        ddepth - 输出图像深度(-1 表示使用 src.depth())。
        ksize - 模糊核大小。
        anchor - 锚点;默认值 Point(-1,-1) 表示锚点位于核的中心。
        normalize - 标志,指定核是否按其面积进行归一化。另请参阅:blur、bilateralFilter、GaussianBlur、medianBlur、integral
      • boxFilter

        public static void boxFilter​(Mat src,
                                     Mat dst,
                                     int ddepth,
                                     Size ksize,
                                     Point anchor)
        使用盒式滤波器模糊图像。该函数使用以下核平滑图像:\(\texttt{K} = \alpha \begin{bmatrix} 1 & 1 & 1 & \cdots & 1 & 1 \\ 1 & 1 & 1 & \cdots & 1 & 1 \\ \hdotsfor{6} \\ 1 & 1 & 1 & \cdots & 1 & 1 \end{bmatrix}\),其中\(\alpha = \begin{cases} \frac{1}{\texttt{ksize.width*ksize.height}}} & \texttt{当 } \texttt{normalize=true} \\1 & \texttt{否则}\end{cases}\)。未归一化的盒式滤波器可用于计算每个像素邻域的各种积分特征,例如图像导数的协方差矩阵(用于密集光流算法等)。如果需要计算可变尺寸窗口内的像素和,请使用 #integral。
        参数
        src - 输入图像。
        dst - 与 src 相同大小和类型的输出图像。 (dst - output image of the same size and type as src.)
        ddepth - 输出图像深度(-1 表示使用 src.depth())。
        ksize - 模糊核大小。
        anchor - 锚点;默认值 Point(-1,-1) 表示锚点位于核的中心。另请参阅:blur、bilateralFilter、GaussianBlur、medianBlur、integral
      • boxFilter

        public static void boxFilter​(Mat src,
                                     Mat dst,
                                     int ddepth,
                                     Size ksize)
        使用盒式滤波器模糊图像。该函数使用以下核平滑图像:\(\texttt{K} = \alpha \begin{bmatrix} 1 & 1 & 1 & \cdots & 1 & 1 \\ 1 & 1 & 1 & \cdots & 1 & 1 \\ \hdotsfor{6} \\ 1 & 1 & 1 & \cdots & 1 & 1 \end{bmatrix}\),其中\(\alpha = \begin{cases} \frac{1}{\texttt{ksize.width*ksize.height}}} & \texttt{当 } \texttt{normalize=true} \\1 & \texttt{否则}\end{cases}\)。未归一化的盒式滤波器可用于计算每个像素邻域的各种积分特征,例如图像导数的协方差矩阵(用于密集光流算法等)。如果需要计算可变尺寸窗口内的像素和,请使用 #integral。
        参数
        src - 输入图像。
        dst - 与 src 相同大小和类型的输出图像。 (dst - output image of the same size and type as src.)
        ddepth - 输出图像深度(-1 表示使用 src.depth())。
        ksize - 模糊核大小。另请参阅:blur、bilateralFilter、GaussianBlur、medianBlur、integral
      • sqrBoxFilter

        public static void sqrBoxFilter​(Mat src,
                                        Mat dst,
                                        int ddepth,
                                        Size ksize,
                                        Point anchor,
                                        boolean normalize,
                                        int borderType)
        计算重叠滤波器的像素值平方和的归一化值。对于源图像中的每个像素 \( (x, y) \),该函数计算与放置在像素 \( (x, y) \) 上方的滤波器重叠的相邻像素值平方的和。未归一化的平方盒式滤波器可用于计算局部图像统计信息,例如像素邻域的局部方差和标准差。
        参数
        src - 输入图像
        dst - 与 src 大小和类型相同的输出图像
        ddepth - 输出图像深度(-1 表示使用 src.depth())
        ksize - 核大小
        anchor - 核锚点。默认值 Point(-1, -1) 表示锚点位于核的中心。
        normalize - 标志,指定核是否按其面积进行归一化。
        borderType - 用于外插图像外部像素的边界模式,请参阅 #BorderTypes。不支持 #BORDER_WRAP。另请参阅:boxFilter
      • sqrBoxFilter

        public static void sqrBoxFilter​(Mat src,
                                        Mat dst,
                                        int ddepth,
                                        Size ksize,
                                        Point anchor,
                                        boolean normalize)
        计算重叠滤波器的像素值平方和的归一化值。对于源图像中的每个像素 \( (x, y) \),该函数计算与放置在像素 \( (x, y) \) 上方的滤波器重叠的相邻像素值平方的和。未归一化的平方盒式滤波器可用于计算局部图像统计信息,例如像素邻域的局部方差和标准差。
        参数
        src - 输入图像
        dst - 与 src 大小和类型相同的输出图像
        ddepth - 输出图像深度(-1 表示使用 src.depth())
        ksize - 核大小
        anchor - 核锚点。默认值 Point(-1, -1) 表示锚点位于核的中心。
        normalize - 标志,指定核是否按其面积进行归一化。另请参阅:boxFilter
      • sqrBoxFilter

        public static void sqrBoxFilter​(Mat src,
                                        Mat dst,
                                        int ddepth,
                                        Size ksize,
                                        Point anchor)
        计算重叠滤波器的像素值平方和的归一化值。对于源图像中的每个像素 \( (x, y) \),该函数计算与放置在像素 \( (x, y) \) 上方的滤波器重叠的相邻像素值平方的和。未归一化的平方盒式滤波器可用于计算局部图像统计信息,例如像素邻域的局部方差和标准差。
        参数
        src - 输入图像
        dst - 与 src 大小和类型相同的输出图像
        ddepth - 输出图像深度(-1 表示使用 src.depth())
        ksize - 核大小
        anchor - 核锚点。默认值 Point(-1, -1) 表示锚点位于核的中心。另请参阅:boxFilter
      • sqrBoxFilter

        public static void sqrBoxFilter​(Mat src,
                                        Mat dst,
                                        int ddepth,
                                        Size ksize)
        计算重叠滤波器的像素值平方和的归一化值。对于源图像中的每个像素 \( (x, y) \),该函数计算与放置在像素 \( (x, y) \) 上方的滤波器重叠的相邻像素值平方的和。未归一化的平方盒式滤波器可用于计算局部图像统计信息,例如像素邻域的局部方差和标准差。
        参数
        src - 输入图像
        dst - 与 src 大小和类型相同的输出图像
        ddepth - 输出图像深度(-1 表示使用 src.depth())
        ksize - 核大小中心。另请参阅:boxFilter
      • blur

        public static void blur​(Mat src,
                                Mat dst,
                                Size ksize,
                                Point anchor,
                                int borderType)
        使用归一化盒式滤波器模糊图像。该函数使用以下核平滑图像:\(\texttt{K} = \frac{1}{\texttt{ksize.width*ksize.height}}} \begin{bmatrix} 1 & 1 & 1 & \cdots & 1 & 1 \\ 1 & 1 & 1 & \cdots & 1 & 1 \\ \hdotsfor{6} \\ 1 & 1 & 1 & \cdots & 1 & 1 \\ \end{bmatrix}\) 调用 `blur(src, dst, ksize, anchor, borderType)` 等效于 `boxFilter(src, dst, src.type(), ksize, anchor, true, borderType)`。
        参数
        src - 输入图像;它可以有任意数量的通道,这些通道独立处理,但深度应为 CV_8U、CV_16U、CV_16S、CV_32F 或 CV_64F。
        dst - 与 src 相同大小和类型的输出图像。 (dst - output image of the same size and type as src.)
        ksize - 模糊核大小。
        anchor - 锚点;默认值 Point(-1,-1) 表示锚点位于核的中心。
        borderType - 用于外插图像外部像素的边界模式,请参阅 #BorderTypes。不支持 #BORDER_WRAP。另请参阅:boxFilter、bilateralFilter、GaussianBlur、medianBlur
      • blur

        public static void blur​(Mat src,
                                Mat dst,
                                Size ksize,
                                Point anchor)
        使用归一化盒式滤波器模糊图像。该函数使用以下核平滑图像:\(\texttt{K} = \frac{1}{\texttt{ksize.width*ksize.height}}} \begin{bmatrix} 1 & 1 & 1 & \cdots & 1 & 1 \\ 1 & 1 & 1 & \cdots & 1 & 1 \\ \hdotsfor{6} \\ 1 & 1 & 1 & \cdots & 1 & 1 \\ \end{bmatrix}\) 调用 `blur(src, dst, ksize, anchor, borderType)` 等效于 `boxFilter(src, dst, src.type(), ksize, anchor, true, borderType)`。
        参数
        src - 输入图像;它可以有任意数量的通道,这些通道独立处理,但深度应为 CV_8U、CV_16U、CV_16S、CV_32F 或 CV_64F。
        dst - 与 src 相同大小和类型的输出图像。 (dst - output image of the same size and type as src.)
        ksize - 模糊核大小。
        anchor - 锚点;默认值 Point(-1,-1) 表示锚点位于核的中心。另请参阅:boxFilter、bilateralFilter、GaussianBlur、medianBlur
      • blur

        public static void blur​(Mat src,
                                Mat dst,
                                Size ksize)
        使用归一化盒式滤波器模糊图像。该函数使用以下核平滑图像:\(\texttt{K} = \frac{1}{\texttt{ksize.width*ksize.height}}} \begin{bmatrix} 1 & 1 & 1 & \cdots & 1 & 1 \\ 1 & 1 & 1 & \cdots & 1 & 1 \\ \hdotsfor{6} \\ 1 & 1 & 1 & \cdots & 1 & 1 \\ \end{bmatrix}\) 调用 `blur(src, dst, ksize, anchor, borderType)` 等效于 `boxFilter(src, dst, src.type(), ksize, anchor, true, borderType)`。
        参数
        src - 输入图像;它可以有任意数量的通道,这些通道独立处理,但深度应为 CV_8U、CV_16U、CV_16S、CV_32F 或 CV_64F。
        dst - 与 src 相同大小和类型的输出图像。 (dst - output image of the same size and type as src.)
        ksize - 模糊核大小。另请参阅:boxFilter、bilateralFilter、GaussianBlur、medianBlur
      • stackBlur

        public static void stackBlur​(Mat src,
                                     Mat dst,
                                     Size ksize)
        使用 stackBlur 模糊图像。该函数将 stackBlur 应用于图像。stackBlur 可以产生与高斯模糊类似的结果,并且时间消耗不随内核大小的增加而增加。它会在扫描图像时创建一种移动的颜色堆栈。因此,它只需要向堆栈的右侧添加一个新的颜色块,并移除最左侧的颜色。堆栈顶层的其余颜色根据它们在堆栈的右侧还是左侧,会增加或减少一个。唯一支持的 borderType 是 BORDER_REPLICATE。原始论文由 Mario Klingemann 提出,可在 https://underdestruction.com/2004/02/25/stackblur-2004 找到。
        参数
        src - 输入图像。通道数可以是任意的,但深度应为 CV_8U、CV_16U、CV_16S 或 CV_32F 之一。
        dst - 与 src 相同大小和类型的输出图像。 (dst - output image of the same size and type as src.)
        ksize - 堆栈模糊核大小。ksize.width 和 ksize.height 可以不同,但它们都必须是正数且为奇数。
      • filter2D

        public static void filter2D​(Mat src,
                                    Mat dst,
                                    int ddepth,
                                    Mat kernel,
                                    Point anchor,
                                    double delta,
                                    int borderType)
        将图像与核进行卷积。该函数将任意线性滤波器应用于图像。支持原地操作。当孔径部分位于图像外部时,函数会根据指定的边界模式对异常像素值进行插值。该函数实际上计算的是相关性,而不是卷积:\(\texttt{dst} (x,y) = \sum _{ \substack{0\leq x' < \texttt{kernel.cols}\\{0\leq y' < \texttt{kernel.rows}}}} \texttt{kernel} (x',y')* \texttt{src} (x+x'- \texttt{anchor.x} ,y+y'- \texttt{anchor.y} )\) 也就是说,核在锚点周围没有翻转。如果您需要真正的卷积,请使用 #flip 翻转核,并将新锚点设置为 `(kernel.cols - anchor.x - 1, kernel.rows - anchor.y - 1)`。对于足够大的核(约 11 x 11 或更大),该函数使用基于 DFT 的算法;对于较小的核,则使用直接算法。
        参数
        src - 输入图像。
        dst - 与 src 大小和通道数相同的输出图像。
        ddepth - 目标图像的所需深度,请参阅 REF: filter_depths "combinations"
        kernel - 卷积核(或者更准确地说,相关性核),一个单通道浮点矩阵;如果您想将不同的核应用于不同的通道,请使用 split 将图像分割成单独的颜色平面并单独处理它们。
        anchor - 核的锚点,表示在核内被过滤点的相对位置;锚点应位于核内;默认值 (-1,-1) 表示锚点位于核的中心。
        delta - 在存储到 dst 之前添加到过滤后像素的可选值。
        borderType - 像素外插方法,请参阅 #BorderTypes。不支持 #BORDER_WRAP。另请参阅:sepFilter2D、dft、matchTemplate
      • filter2D

        public static void filter2D​(Mat src,
                                    Mat dst,
                                    int ddepth,
                                    Mat kernel,
                                    Point anchor,
                                    double delta)
        将图像与核进行卷积。该函数将任意线性滤波器应用于图像。支持原地操作。当孔径部分位于图像外部时,函数会根据指定的边界模式对异常像素值进行插值。该函数实际上计算的是相关性,而不是卷积:\(\texttt{dst} (x,y) = \sum _{ \substack{0\leq x' < \texttt{kernel.cols}\\{0\leq y' < \texttt{kernel.rows}}}} \texttt{kernel} (x',y')* \texttt{src} (x+x'- \texttt{anchor.x} ,y+y'- \texttt{anchor.y} )\) 也就是说,核在锚点周围没有翻转。如果您需要真正的卷积,请使用 #flip 翻转核,并将新锚点设置为 `(kernel.cols - anchor.x - 1, kernel.rows - anchor.y - 1)`。对于足够大的核(约 11 x 11 或更大),该函数使用基于 DFT 的算法;对于较小的核,则使用直接算法。
        参数
        src - 输入图像。
        dst - 与 src 大小和通道数相同的输出图像。
        ddepth - 目标图像的所需深度,请参阅 REF: filter_depths "combinations"
        kernel - 卷积核(或者更准确地说,相关性核),一个单通道浮点矩阵;如果您想将不同的核应用于不同的通道,请使用 split 将图像分割成单独的颜色平面并单独处理它们。
        anchor - 核的锚点,表示在核内被过滤点的相对位置;锚点应位于核内;默认值 (-1,-1) 表示锚点位于核的中心。
        delta - 在存储到 dst 之前添加到过滤后像素的可选值。另请参阅:sepFilter2D、dft、matchTemplate
      • filter2D

        public static void filter2D​(Mat src,
                                    Mat dst,
                                    int ddepth,
                                    Mat kernel,
                                    Point anchor)
        将图像与核进行卷积。该函数将任意线性滤波器应用于图像。支持原地操作。当孔径部分位于图像外部时,函数会根据指定的边界模式对异常像素值进行插值。该函数实际上计算的是相关性,而不是卷积:\(\texttt{dst} (x,y) = \sum _{ \substack{0\leq x' < \texttt{kernel.cols}\\{0\leq y' < \texttt{kernel.rows}}}} \texttt{kernel} (x',y')* \texttt{src} (x+x'- \texttt{anchor.x} ,y+y'- \texttt{anchor.y} )\) 也就是说,核在锚点周围没有翻转。如果您需要真正的卷积,请使用 #flip 翻转核,并将新锚点设置为 `(kernel.cols - anchor.x - 1, kernel.rows - anchor.y - 1)`。对于足够大的核(约 11 x 11 或更大),该函数使用基于 DFT 的算法;对于较小的核,则使用直接算法。
        参数
        src - 输入图像。
        dst - 与 src 大小和通道数相同的输出图像。
        ddepth - 目标图像的所需深度,请参阅 REF: filter_depths "combinations"
        kernel - 卷积核(或者更准确地说,相关性核),一个单通道浮点矩阵;如果您想将不同的核应用于不同的通道,请使用 split 将图像分割成单独的颜色平面并单独处理它们。
        anchor - 核的锚点,表示在核内被过滤点的相对位置;锚点应位于核内;默认值 (-1,-1) 表示锚点位于核的中心。另请参阅:sepFilter2D、dft、matchTemplate
      • filter2D

        public static void filter2D​(Mat src,
                                    Mat dst,
                                    int ddepth,
                                    Mat kernel)
        将图像与核进行卷积。该函数将任意线性滤波器应用于图像。支持原地操作。当孔径部分位于图像外部时,函数会根据指定的边界模式对异常像素值进行插值。该函数实际上计算的是相关性,而不是卷积:\(\texttt{dst} (x,y) = \sum _{ \substack{0\leq x' < \texttt{kernel.cols}\\{0\leq y' < \texttt{kernel.rows}}}} \texttt{kernel} (x',y')* \texttt{src} (x+x'- \texttt{anchor.x} ,y+y'- \texttt{anchor.y} )\) 也就是说,核在锚点周围没有翻转。如果您需要真正的卷积,请使用 #flip 翻转核,并将新锚点设置为 `(kernel.cols - anchor.x - 1, kernel.rows - anchor.y - 1)`。对于足够大的核(约 11 x 11 或更大),该函数使用基于 DFT 的算法;对于较小的核,则使用直接算法。
        参数
        src - 输入图像。
        dst - 与 src 大小和通道数相同的输出图像。
        ddepth - 目标图像的所需深度,请参阅 REF: filter_depths "combinations"
        kernel - 卷积核(或者更准确地说,相关性核),一个单通道浮点矩阵;如果您想将不同的核应用于不同的通道,请使用 split 将图像分割成单独的颜色平面并单独处理它们。核;锚点应位于核内;默认值 (-1,-1) 表示锚点位于核的中心。另请参阅:sepFilter2D、dft、matchTemplate
      • 可分二维滤波 (sepFilter2D)

        public static void sepFilter2D​(Mat src,
                                       Mat dst,
                                       int ddepth,
                                       Mat kernelX,
                                       Mat kernelY,
                                       Point anchor,
                                       double delta,
                                       int borderType)
        将可分离线性滤波器应用于图像。该函数将可分离线性滤波器应用于图像。也就是说,首先,src 的每一行都用一维核 kernelX 进行滤波。然后,结果的每一列都用一维核 kernelY 进行滤波。最终结果加上 delta 后存储在 dst 中。
        参数
        src - 源图像。
        dst - 与 src 大小和通道数相同的目标图像。
        ddepth - 目标图像深度,请参阅 REF: filter_depths "combinations"
        kernelX - 对每一行进行滤波的系数。
        kernelY - 对每一列进行滤波的系数。
        anchor - 核内的锚点位置。默认值 \((-1,-1)\) 表示锚点位于核的中心。
        delta - 在存储到结果之前添加到过滤后结果的值。
        borderType - 像素外插方法,请参阅 #BorderTypes。不支持 #BORDER_WRAP。另请参阅:filter2D、Sobel、GaussianBlur、boxFilter、blur
      • 可分二维滤波 (sepFilter2D)

        public static void sepFilter2D​(Mat src,
                                       Mat dst,
                                       int ddepth,
                                       Mat kernelX,
                                       Mat kernelY,
                                       Point anchor,
                                       double delta)
        将可分离线性滤波器应用于图像。该函数将可分离线性滤波器应用于图像。也就是说,首先,src 的每一行都用一维核 kernelX 进行滤波。然后,结果的每一列都用一维核 kernelY 进行滤波。最终结果加上 delta 后存储在 dst 中。
        参数
        src - 源图像。
        dst - 与 src 大小和通道数相同的目标图像。
        ddepth - 目标图像深度,请参阅 REF: filter_depths "combinations"
        kernelX - 对每一行进行滤波的系数。
        kernelY - 对每一列进行滤波的系数。
        anchor - 核内的锚点位置。默认值 \((-1,-1)\) 表示锚点位于核的中心。
        delta - 在存储到结果之前添加到过滤后结果的值。另请参阅:filter2D、Sobel、GaussianBlur、boxFilter、blur
      • 可分二维滤波 (sepFilter2D)

        public static void sepFilter2D​(Mat src,
                                       Mat dst,
                                       int ddepth,
                                       Mat kernelX,
                                       Mat kernelY,
                                       Point anchor)
        将可分离线性滤波器应用于图像。该函数将可分离线性滤波器应用于图像。也就是说,首先,src 的每一行都用一维核 kernelX 进行滤波。然后,结果的每一列都用一维核 kernelY 进行滤波。最终结果加上 delta 后存储在 dst 中。
        参数
        src - 源图像。
        dst - 与 src 大小和通道数相同的目标图像。
        ddepth - 目标图像深度,请参阅 REF: filter_depths "combinations"
        kernelX - 对每一行进行滤波的系数。
        kernelY - 对每一列进行滤波的系数。
        anchor - 核内的锚点位置。默认值 \((-1,-1)\) 表示锚点位于核的中心。另请参阅:filter2D、Sobel、GaussianBlur、boxFilter、blur
      • 可分二维滤波 (sepFilter2D)

        public static void sepFilter2D​(Mat src,
                                       Mat dst,
                                       int ddepth,
                                       Mat kernelX,
                                       Mat kernelY)
        将可分离线性滤波器应用于图像。该函数将可分离线性滤波器应用于图像。也就是说,首先,src 的每一行都用一维核 kernelX 进行滤波。然后,结果的每一列都用一维核 kernelY 进行滤波。最终结果加上 delta 后存储在 dst 中。
        参数
        src - 源图像。
        dst - 与 src 大小和通道数相同的目标图像。
        ddepth - 目标图像深度,请参阅 REF: filter_depths "combinations"
        kernelX - 对每一行进行滤波的系数。
        kernelY - 对每一列进行滤波的系数。另请参阅:filter2D、Sobel、GaussianBlur、boxFilter、blur
      • Sobel

        public static void Sobel​(Mat src,
                                 Mat dst,
                                 int ddepth,
                                 int dx,
                                 int dy,
                                 int ksize,
                                 double scale,
                                 double delta,
                                 int borderType)
        使用扩展 Sobel 算子计算一阶、二阶、三阶或混合图像导数。在所有情况(除一种外)下,都使用 \(\texttt{ksize} \times \texttt{ksize}\) 的可分离核来计算导数。当 \(\texttt{ksize = 1}\) 时,使用 \(3 \times 1\) 或 \(1 \times 3\) 的核(即不进行高斯平滑)。ksize = 1 只能用于一阶或二阶 x 或 y 导数。还有一个特殊值 ksize = #FILTER_SCHARR (-1),对应于 \(3 \times 3\) 的 Scharr 滤波器,可能比 \(3 \times 3\) 的 Sobel 滤波器提供更准确的结果。对于 x 导数,Scharr 孔径为 \(\vecthreethree{-3}{0}{3}{-10}{0}{10}{-3}{0}{3}\),对于 y 导数则转置。该函数通过将图像与适当的核进行卷积来计算图像导数:\(\texttt{dst} = \frac{\partial^{xorder+yorder} \texttt{src}}{\partial x^{xorder} \partial y^{yorder}}\) Sobel 算子结合了高斯平滑和微分,因此结果对噪声的抵抗力或多或少较强。大多数情况下,该函数在 ( xorder = 1, yorder = 0, ksize = 3) 或 ( xorder = 0, yorder = 1, ksize = 3) 时调用,以计算一阶 x 或 y 图像导数。第一种情况对应于核:\(\vecthreethree{-1}{0}{1}{-2}{0}{2}{-1}{0}{1}\) 第二种情况对应于核:\(\vecthreethree{-1}{-2}{-1}{0}{0}{0}{1}{2}{1}\)
        参数
        src - 输入图像。
        dst - 与 src 大小和通道数相同的输出图像。
        ddepth - 输出图像深度,请参阅 REF: filter_depths "combinations";对于 8 位输入图像,这将导致导数截断。
        dx - x 导数的阶数。
        dy - y 导数的阶数。
        ksize - 扩展 Sobel 核的大小;必须是 1、3、5 或 7。
        scale - 计算出的导数值的可选缩放因子;默认情况下,不进行缩放(有关详细信息,请参阅 #getDerivKernels)。
        delta - 在存储到 dst 之前添加到结果的可选 delta 值。
        borderType - 像素外插方法,请参阅 #BorderTypes。不支持 #BORDER_WRAP。另请参阅:Scharr、Laplacian、sepFilter2D、filter2D、GaussianBlur、cartToPolar
      • Sobel

        public static void Sobel​(Mat src,
                                 Mat dst,
                                 int ddepth,
                                 int dx,
                                 int dy,
                                 int ksize,
                                 double scale,
                                 double delta)
        使用扩展 Sobel 算子计算一阶、二阶、三阶或混合图像导数。在所有情况(除一种外)下,都使用 \(\texttt{ksize} \times \texttt{ksize}\) 的可分离核来计算导数。当 \(\texttt{ksize = 1}\) 时,使用 \(3 \times 1\) 或 \(1 \times 3\) 的核(即不进行高斯平滑)。ksize = 1 只能用于一阶或二阶 x 或 y 导数。还有一个特殊值 ksize = #FILTER_SCHARR (-1),对应于 \(3 \times 3\) 的 Scharr 滤波器,可能比 \(3 \times 3\) 的 Sobel 滤波器提供更准确的结果。对于 x 导数,Scharr 孔径为 \(\vecthreethree{-3}{0}{3}{-10}{0}{10}{-3}{0}{3}\),对于 y 导数则转置。该函数通过将图像与适当的核进行卷积来计算图像导数:\(\texttt{dst} = \frac{\partial^{xorder+yorder} \texttt{src}}{\partial x^{xorder} \partial y^{yorder}}\) Sobel 算子结合了高斯平滑和微分,因此结果对噪声的抵抗力或多或少较强。大多数情况下,该函数在 ( xorder = 1, yorder = 0, ksize = 3) 或 ( xorder = 0, yorder = 1, ksize = 3) 时调用,以计算一阶 x 或 y 图像导数。第一种情况对应于核:\(\vecthreethree{-1}{0}{1}{-2}{0}{2}{-1}{0}{1}\) 第二种情况对应于核:\(\vecthreethree{-1}{-2}{-1}{0}{0}{0}{1}{2}{1}\)
        参数
        src - 输入图像。
        dst - 与 src 大小和通道数相同的输出图像。
        ddepth - 输出图像深度,请参阅 REF: filter_depths "combinations";对于 8 位输入图像,这将导致导数截断。
        dx - x 导数的阶数。
        dy - y 导数的阶数。
        ksize - 扩展 Sobel 核的大小;必须是 1、3、5 或 7。
        scale - 计算出的导数值的可选缩放因子;默认情况下,不进行缩放(有关详细信息,请参阅 #getDerivKernels)。
        delta - 在存储到 dst 之前添加到结果的可选 delta 值。另请参阅:Scharr、Laplacian、sepFilter2D、filter2D、GaussianBlur、cartToPolar
      • Sobel

        public static void Sobel​(Mat src,
                                 Mat dst,
                                 int ddepth,
                                 int dx,
                                 int dy,
                                 int ksize,
                                 double scale)
        使用扩展 Sobel 算子计算一阶、二阶、三阶或混合图像导数。在所有情况(除一种外)下,都使用 \(\texttt{ksize} \times \texttt{ksize}\) 的可分离核来计算导数。当 \(\texttt{ksize = 1}\) 时,使用 \(3 \times 1\) 或 \(1 \times 3\) 的核(即不进行高斯平滑)。ksize = 1 只能用于一阶或二阶 x 或 y 导数。还有一个特殊值 ksize = #FILTER_SCHARR (-1),对应于 \(3 \times 3\) 的 Scharr 滤波器,可能比 \(3 \times 3\) 的 Sobel 滤波器提供更准确的结果。对于 x 导数,Scharr 孔径为 \(\vecthreethree{-3}{0}{3}{-10}{0}{10}{-3}{0}{3}\),对于 y 导数则转置。该函数通过将图像与适当的核进行卷积来计算图像导数:\(\texttt{dst} = \frac{\partial^{xorder+yorder} \texttt{src}}{\partial x^{xorder} \partial y^{yorder}}\) Sobel 算子结合了高斯平滑和微分,因此结果对噪声的抵抗力或多或少较强。大多数情况下,该函数在 ( xorder = 1, yorder = 0, ksize = 3) 或 ( xorder = 0, yorder = 1, ksize = 3) 时调用,以计算一阶 x 或 y 图像导数。第一种情况对应于核:\(\vecthreethree{-1}{0}{1}{-2}{0}{2}{-1}{0}{1}\) 第二种情况对应于核:\(\vecthreethree{-1}{-2}{-1}{0}{0}{0}{1}{2}{1}\)
        参数
        src - 输入图像。
        dst - 与 src 大小和通道数相同的输出图像。
        ddepth - 输出图像深度,请参阅 REF: filter_depths "combinations";对于 8 位输入图像,这将导致导数截断。
        dx - x 导数的阶数。
        dy - y 导数的阶数。
        ksize - 扩展 Sobel 核的大小;必须是 1、3、5 或 7。
        scale - 计算出的导数值的可选缩放因子;默认情况下,不进行缩放(有关详细信息,请参阅 #getDerivKernels)。另请参阅:Scharr、Laplacian、sepFilter2D、filter2D、GaussianBlur、cartToPolar
      • Sobel

        public static void Sobel​(Mat src,
                                 Mat dst,
                                 int ddepth,
                                 int dx,
                                 int dy,
                                 int ksize)
        使用扩展 Sobel 算子计算一阶、二阶、三阶或混合图像导数。在所有情况(除一种外)下,都使用 \(\texttt{ksize} \times \texttt{ksize}\) 的可分离核来计算导数。当 \(\texttt{ksize = 1}\) 时,使用 \(3 \times 1\) 或 \(1 \times 3\) 的核(即不进行高斯平滑)。ksize = 1 只能用于一阶或二阶 x 或 y 导数。还有一个特殊值 ksize = #FILTER_SCHARR (-1),对应于 \(3 \times 3\) 的 Scharr 滤波器,可能比 \(3 \times 3\) 的 Sobel 滤波器提供更准确的结果。对于 x 导数,Scharr 孔径为 \(\vecthreethree{-3}{0}{3}{-10}{0}{10}{-3}{0}{3}\),对于 y 导数则转置。该函数通过将图像与适当的核进行卷积来计算图像导数:\(\texttt{dst} = \frac{\partial^{xorder+yorder} \texttt{src}}{\partial x^{xorder} \partial y^{yorder}}\) Sobel 算子结合了高斯平滑和微分,因此结果对噪声的抵抗力或多或少较强。大多数情况下,该函数在 ( xorder = 1, yorder = 0, ksize = 3) 或 ( xorder = 0, yorder = 1, ksize = 3) 时调用,以计算一阶 x 或 y 图像导数。第一种情况对应于核:\(\vecthreethree{-1}{0}{1}{-2}{0}{2}{-1}{0}{1}\) 第二种情况对应于核:\(\vecthreethree{-1}{-2}{-1}{0}{0}{0}{1}{2}{1}\)
        参数
        src - 输入图像。
        dst - 与 src 大小和通道数相同的输出图像。
        ddepth - 输出图像深度,请参阅 REF: filter_depths "combinations";对于 8 位输入图像,这将导致导数截断。
        dx - x 导数的阶数。
        dy - y 导数的阶数。
        ksize - 扩展 Sobel 核的大小;必须是 1、3、5 或 7。另请参阅:Scharr、Laplacian、sepFilter2D、filter2D、GaussianBlur、cartToPolar
      • Sobel

        public static void Sobel​(Mat src,
                                 Mat dst,
                                 int ddepth,
                                 int dx,
                                 int dy)
        使用扩展 Sobel 算子计算一阶、二阶、三阶或混合图像导数。在所有情况(除一种外)下,都使用 \(\texttt{ksize} \times \texttt{ksize}\) 的可分离核来计算导数。当 \(\texttt{ksize = 1}\) 时,使用 \(3 \times 1\) 或 \(1 \times 3\) 的核(即不进行高斯平滑)。ksize = 1 只能用于一阶或二阶 x 或 y 导数。还有一个特殊值 ksize = #FILTER_SCHARR (-1),对应于 \(3 \times 3\) 的 Scharr 滤波器,可能比 \(3 \times 3\) 的 Sobel 滤波器提供更准确的结果。对于 x 导数,Scharr 孔径为 \(\vecthreethree{-3}{0}{3}{-10}{0}{10}{-3}{0}{3}\),对于 y 导数则转置。该函数通过将图像与适当的核进行卷积来计算图像导数:\(\texttt{dst} = \frac{\partial^{xorder+yorder} \texttt{src}}{\partial x^{xorder} \partial y^{yorder}}\) Sobel 算子结合了高斯平滑和微分,因此结果对噪声的抵抗力或多或少较强。大多数情况下,该函数在 ( xorder = 1, yorder = 0, ksize = 3) 或 ( xorder = 0, yorder = 1, ksize = 3) 时调用,以计算一阶 x 或 y 图像导数。第一种情况对应于核:\(\vecthreethree{-1}{0}{1}{-2}{0}{2}{-1}{0}{1}\) 第二种情况对应于核:\(\vecthreethree{-1}{-2}{-1}{0}{0}{0}{1}{2}{1}\)
        参数
        src - 输入图像。
        dst - 与 src 大小和通道数相同的输出图像。
        ddepth - 输出图像深度,请参阅 REF: filter_depths "combinations";对于 8 位输入图像,这将导致导数截断。
        dx - x 导数的阶数。
        dy - y 导数的阶数。另请参阅:Scharr、Laplacian、sepFilter2D、filter2D、GaussianBlur、cartToPolar
      • spatialGradient

        public static void spatialGradient​(Mat src,
                                           Mat dx,
                                           Mat dy,
                                           int ksize,
                                           int borderType)
        使用 Sobel 算子计算 x 和 y 方向的一阶图像导数。相当于调用: Sobel( src, dx, CV_16SC1, 1, 0, 3 ); Sobel( src, dy, CV_16SC1, 0, 1, 3 ); (Calculates the first order image derivative in both x and y using a Sobel operator Equivalent to calling: Sobel( src, dx, CV_16SC1, 1, 0, 3 ); Sobel( src, dy, CV_16SC1, 0, 1, 3 ); )
        参数
        src - 输入图像。
        dx - x 方向的一阶导数的输出图像。
        dy - y 方向的一阶导数的输出图像。
        ksize - Sobel 核的大小。必须是 3。
        borderType - 像素外插方法,请参阅 #BorderTypes。仅支持 #BORDER_DEFAULT=#BORDER_REFLECT_101 和 #BORDER_REPLICATE。另请参阅:Sobel
      • spatialGradient

        public static void spatialGradient​(Mat src,
                                           Mat dx,
                                           Mat dy,
                                           int ksize)
        使用 Sobel 算子计算 x 和 y 方向的一阶图像导数。相当于调用: Sobel( src, dx, CV_16SC1, 1, 0, 3 ); Sobel( src, dy, CV_16SC1, 0, 1, 3 ); (Calculates the first order image derivative in both x and y using a Sobel operator Equivalent to calling: Sobel( src, dx, CV_16SC1, 1, 0, 3 ); Sobel( src, dy, CV_16SC1, 0, 1, 3 ); )
        参数
        src - 输入图像。
        dx - x 方向的一阶导数的输出图像。
        dy - y 方向的一阶导数的输出图像。
        ksize - Sobel 核的大小。必须是 3。另请参阅:Sobel
      • spatialGradient

        public static void spatialGradient​(Mat src,
                                           Mat dx,
                                           Mat dy)
        使用 Sobel 算子计算 x 和 y 方向的一阶图像导数。相当于调用: Sobel( src, dx, CV_16SC1, 1, 0, 3 ); Sobel( src, dy, CV_16SC1, 0, 1, 3 ); (Calculates the first order image derivative in both x and y using a Sobel operator Equivalent to calling: Sobel( src, dx, CV_16SC1, 1, 0, 3 ); Sobel( src, dy, CV_16SC1, 0, 1, 3 ); )
        参数
        src - 输入图像。
        dx - x 方向的一阶导数的输出图像。
        dy - y 方向的一阶导数的输出图像。另请参阅:Sobel
      • Scharr

        public static void Scharr​(Mat src,
                                  Mat dst,
                                  int ddepth,
                                  int dx,
                                  int dy,
                                  double scale,
                                  double delta,
                                  int borderType)
        使用 Scharr 算子计算一阶 x 或 y 图像导数。该函数使用 Scharr 算子计算一阶 x 或 y 空间图像导数。调用 `Scharr(src, dst, ddepth, dx, dy, scale, delta, borderType)` 等效于 `Sobel(src, dst, ddepth, dx, dy, FILTER_SCHARR, scale, delta, borderType)`。
        参数
        src - 输入图像。
        dst - 与 src 大小和通道数相同的输出图像。
        ddepth - 输出图像深度,请参阅 REF: filter_depths "combinations"
        dx - x 导数的阶数。
        dy - y 导数的阶数。
        scale - 计算出的导数值的可选缩放因子;默认情况下,不进行缩放(有关详细信息,请参阅 #getDerivKernels)。
        delta - 在存储到 dst 之前添加到结果的可选 delta 值。
        borderType - 像素外插方法,请参阅 #BorderTypes。不支持 #BORDER_WRAP。另请参阅:cartToPolar
      • Scharr

        public static void Scharr​(Mat src,
                                  Mat dst,
                                  int ddepth,
                                  int dx,
                                  int dy,
                                  double scale,
                                  double delta)
        使用 Scharr 算子计算一阶 x 或 y 图像导数。该函数使用 Scharr 算子计算一阶 x 或 y 空间图像导数。调用 `Scharr(src, dst, ddepth, dx, dy, scale, delta, borderType)` 等效于 `Sobel(src, dst, ddepth, dx, dy, FILTER_SCHARR, scale, delta, borderType)`。
        参数
        src - 输入图像。
        dst - 与 src 大小和通道数相同的输出图像。
        ddepth - 输出图像深度,请参阅 REF: filter_depths "combinations"
        dx - x 导数的阶数。
        dy - y 导数的阶数。
        scale - 计算出的导数值的可选缩放因子;默认情况下,不进行缩放(有关详细信息,请参阅 #getDerivKernels)。
        delta - 在存储到 dst 之前添加到结果的可选 delta 值。另请参阅:cartToPolar
      • Scharr

        public static void Scharr​(Mat src,
                                  Mat dst,
                                  int ddepth,
                                  int dx,
                                  int dy,
                                  double scale)
        使用 Scharr 算子计算一阶 x 或 y 图像导数。该函数使用 Scharr 算子计算一阶 x 或 y 空间图像导数。调用 `Scharr(src, dst, ddepth, dx, dy, scale, delta, borderType)` 等效于 `Sobel(src, dst, ddepth, dx, dy, FILTER_SCHARR, scale, delta, borderType)`。
        参数
        src - 输入图像。
        dst - 与 src 大小和通道数相同的输出图像。
        ddepth - 输出图像深度,请参阅 REF: filter_depths "combinations"
        dx - x 导数的阶数。
        dy - y 导数的阶数。
        scale - 计算出的导数值的可选缩放因子;默认情况下,不进行缩放(有关详细信息,请参阅 #getDerivKernels)。另请参阅:cartToPolar
      • Scharr

        public static void Scharr​(Mat src,
                                  Mat dst,
                                  int ddepth,
                                  int dx,
                                  int dy)
        使用 Scharr 算子计算一阶 x 或 y 图像导数。该函数使用 Scharr 算子计算一阶 x 或 y 空间图像导数。调用 `Scharr(src, dst, ddepth, dx, dy, scale, delta, borderType)` 等效于 `Sobel(src, dst, ddepth, dx, dy, FILTER_SCHARR, scale, delta, borderType)`。
        参数
        src - 输入图像。
        dst - 与 src 大小和通道数相同的输出图像。
        ddepth - 输出图像深度,请参阅 REF: filter_depths "combinations"
        dx - x 导数的阶数。
        dy - y 导数的阶数。另请参阅:cartToPolar
      • Laplacian

        public static void Laplacian​(Mat src,
                                     Mat dst,
                                     int ddepth,
                                     int ksize,
                                     double scale,
                                     double delta,
                                     int borderType)
        计算图像的拉普拉斯算子。该函数通过将使用 Sobel 算子计算的二阶 x 和 y 导数相加来计算源图像的拉普拉斯算子:\(\texttt{dst} = \Delta \texttt{src} = \frac{\partial^2 \texttt{src}}{\partial x^2} + \frac{\partial^2 \texttt{src}}{\partial y^2}\) 当 ksize &gt; 1 时执行此操作。当 ksize == 1 时,通过使用以下 \(3 \times 3\) 孔径对图像进行滤波来计算拉普拉斯算子:\(\vecthreethree {0}{1}{0}{1}{-4}{1}{0}{1}{0}\)
        参数
        src - 源图像。
        dst - 与 src 大小和通道数相同的目标图像。
        ddepth - 目标图像的所需深度,请参阅 REF: filter_depths "combinations"。
        ksize - 用于计算二阶导数滤波器的孔径大小。有关详细信息,请参阅 #getDerivKernels。大小必须是正数且为奇数。
        scale - 计算出的拉普拉斯算子值的可选缩放因子。默认情况下,不进行缩放。有关详细信息,请参阅 #getDerivKernels。
        delta - 在存储到 dst 之前添加到结果的可选 delta 值。
        borderType - 像素外插方法,请参阅 #BorderTypes。不支持 #BORDER_WRAP。另请参阅:Sobel、Scharr
      • Laplacian

        public static void Laplacian​(Mat src,
                                     Mat dst,
                                     int ddepth,
                                     int ksize,
                                     double scale,
                                     double delta)
        计算图像的拉普拉斯算子。该函数通过将使用 Sobel 算子计算的二阶 x 和 y 导数相加来计算源图像的拉普拉斯算子:\(\texttt{dst} = \Delta \texttt{src} = \frac{\partial^2 \texttt{src}}{\partial x^2} + \frac{\partial^2 \texttt{src}}{\partial y^2}\) 当 ksize &gt; 1 时执行此操作。当 ksize == 1 时,通过使用以下 \(3 \times 3\) 孔径对图像进行滤波来计算拉普拉斯算子:\(\vecthreethree {0}{1}{0}{1}{-4}{1}{0}{1}{0}\)
        参数
        src - 源图像。
        dst - 与 src 大小和通道数相同的目标图像。
        ddepth - 目标图像的所需深度,请参阅 REF: filter_depths "combinations"。
        ksize - 用于计算二阶导数滤波器的孔径大小。有关详细信息,请参阅 #getDerivKernels。大小必须是正数且为奇数。
        scale - 计算出的拉普拉斯算子值的可选缩放因子。默认情况下,不进行缩放。有关详细信息,请参阅 #getDerivKernels。
        delta - 在存储到 dst 之前添加到结果的可选 delta 值。另请参阅:Sobel、Scharr
      • Laplacian

        public static void Laplacian​(Mat src,
                                     Mat dst,
                                     int ddepth,
                                     int ksize,
                                     double scale)
        计算图像的拉普拉斯算子。该函数通过将使用 Sobel 算子计算的二阶 x 和 y 导数相加来计算源图像的拉普拉斯算子:\(\texttt{dst} = \Delta \texttt{src} = \frac{\partial^2 \texttt{src}}{\partial x^2} + \frac{\partial^2 \texttt{src}}{\partial y^2}\) 当 ksize &gt; 1 时执行此操作。当 ksize == 1 时,通过使用以下 \(3 \times 3\) 孔径对图像进行滤波来计算拉普拉斯算子:\(\vecthreethree {0}{1}{0}{1}{-4}{1}{0}{1}{0}\)
        参数
        src - 源图像。
        dst - 与 src 大小和通道数相同的目标图像。
        ddepth - 目标图像的所需深度,请参阅 REF: filter_depths "combinations"。
        ksize - 用于计算二阶导数滤波器的孔径大小。有关详细信息,请参阅 #getDerivKernels。大小必须是正数且为奇数。
        scale - 计算出的拉普拉斯算子值的可选缩放因子。默认情况下,不进行缩放。有关详细信息,请参阅 #getDerivKernels。另请参阅:Sobel、Scharr
      • Laplacian

        public static void Laplacian​(Mat src,
                                     Mat dst,
                                     int ddepth,
                                     int ksize)
        计算图像的拉普拉斯算子。该函数通过将使用 Sobel 算子计算的二阶 x 和 y 导数相加来计算源图像的拉普拉斯算子:\(\texttt{dst} = \Delta \texttt{src} = \frac{\partial^2 \texttt{src}}{\partial x^2} + \frac{\partial^2 \texttt{src}}{\partial y^2}\) 当 ksize &gt; 1 时执行此操作。当 ksize == 1 时,通过使用以下 \(3 \times 3\) 孔径对图像进行滤波来计算拉普拉斯算子:\(\vecthreethree {0}{1}{0}{1}{-4}{1}{0}{1}{0}\)
        参数
        src - 源图像。
        dst - 与 src 大小和通道数相同的目标图像。
        ddepth - 目标图像的所需深度,请参阅 REF: filter_depths "combinations"。
        ksize - 用于计算二阶导数滤波器的孔径大小。有关详细信息,请参阅 #getDerivKernels。大小必须是正数且为奇数。另请参阅:Sobel、Scharr
      • Laplacian

        public static void Laplacian​(Mat src,
                                     Mat dst,
                                     int ddepth)
        计算图像的拉普拉斯算子。该函数通过将使用 Sobel 算子计算的二阶 x 和 y 导数相加来计算源图像的拉普拉斯算子:\(\texttt{dst} = \Delta \texttt{src} = \frac{\partial^2 \texttt{src}}{\partial x^2} + \frac{\partial^2 \texttt{src}}{\partial y^2}\) 当 ksize &gt; 1 时执行此操作。当 ksize == 1 时,通过使用以下 \(3 \times 3\) 孔径对图像进行滤波来计算拉普拉斯算子:\(\vecthreethree {0}{1}{0}{1}{-4}{1}{0}{1}{0}\)
        参数
        src - 源图像。
        dst - 与 src 大小和通道数相同的目标图像。
        ddepth - 目标图像的所需深度,请参阅 REF: filter_depths "combinations"。另请参阅:Sobel、Scharr
      • Canny

        public static void Canny​(Mat image,
                                 Mat edges,
                                 double threshold1,
                                 double threshold2,
                                 int apertureSize,
                                 boolean L2gradient)
        使用 Canny 算法 CITE: Canny86 在图像中查找边缘。该函数使用 Canny 算法在输入图像中查找边缘并将其标记在输出图 edges 中。threshold1 和 threshold2 之间较小的值用于边缘链接。较大的值用于查找强边缘的初始片段。请参阅 <https://en.wikipedia.org/wiki/Canny_edge_detector>
        参数
        image - 8 位输入图像。
        edges - 输出边缘图;单通道 8 位图像,其大小与 image 相同。
        threshold1 - 滞后过程的第一个阈值。
        threshold2 - 滞后过程的第二个阈值。
        apertureSize - Sobel 算子的孔径大小。
        L2gradient - 一个标志,指示是应使用更精确的 \(L_2\) 范数 \(=\sqrt{(dI/dx)^2 + (dI/dy)^2}\) 来计算图像梯度幅度(L2gradient=true),还是默认的 \(L_1\) 范数 \(=|dI/dx|+|dI/dy|\) 就足够了(L2gradient=false)。
      • Canny

        public static void Canny​(Mat image,
                                 Mat edges,
                                 double threshold1,
                                 double threshold2,
                                 int apertureSize)
        使用 Canny 算法 CITE: Canny86 在图像中查找边缘。该函数使用 Canny 算法在输入图像中查找边缘并将其标记在输出图 edges 中。threshold1 和 threshold2 之间较小的值用于边缘链接。较大的值用于查找强边缘的初始片段。请参阅 <https://en.wikipedia.org/wiki/Canny_edge_detector>
        参数
        image - 8 位输入图像。
        edges - 输出边缘图;单通道 8 位图像,其大小与 image 相同。
        threshold1 - 滞后过程的第一个阈值。
        threshold2 - 滞后过程的第二个阈值。
        apertureSize - Sobel 算子的孔径大小。另请参阅:Canny86
      • Canny

        public static void Canny​(Mat image,
                                 Mat edges,
                                 double threshold1,
                                 double threshold2)
        使用 Canny 算法 CITE: Canny86 在图像中查找边缘。该函数使用 Canny 算法在输入图像中查找边缘并将其标记在输出图 edges 中。threshold1 和 threshold2 之间较小的值用于边缘链接。较大的值用于查找强边缘的初始片段。请参阅 <https://en.wikipedia.org/wiki/Canny_edge_detector>
        参数
        image - 8 位输入图像。
        edges - 输出边缘图;单通道 8 位图像,其大小与 image 相同。
        threshold1 - 滞后过程的第一个阈值。
        threshold2 - 滞后过程的第二个阈值。另请参阅:Canny86
      • Canny

        public static void Canny​(Mat dx,
                                 Mat dy,
                                 Mat edges,
                                 double threshold1,
                                 double threshold2,
                                 boolean L2gradient)
        \overload 使用自定义图像梯度在图像中查找边缘。
        参数
        dx - 输入图像的 16 位 x 导数(CV_16SC1 或 CV_16SC3)。
        dy - 输入图像的 16 位 y 导数(与 dx 类型相同)。
        edges - 输出边缘图;单通道 8 位图像,其大小与 image 相同。
        threshold1 - 滞后过程的第一个阈值。
        threshold2 - 滞后过程的第二个阈值。
        L2gradient - 一个标志,指示是应使用更精确的 \(L_2\) 范数 \(=\sqrt{(dI/dx)^2 + (dI/dy)^2}\) 来计算图像梯度幅度(L2gradient=true),还是默认的 \(L_1\) 范数 \(=|dI/dx|+|dI/dy|\) 就足够了(L2gradient=false)。
      • Canny

        public static void Canny​(Mat dx,
                                 Mat dy,
                                 Mat edges,
                                 double threshold1,
                                 double threshold2)
        \overload 使用自定义图像梯度在图像中查找边缘。
        参数
        dx - 输入图像的 16 位 x 导数(CV_16SC1 或 CV_16SC3)。
        dy - 输入图像的 16 位 y 导数(与 dx 类型相同)。
        edges - 输出边缘图;单通道 8 位图像,其大小与 image 相同。
        threshold1 - 滞后过程的第一个阈值。
        threshold2 - 滞后过程的第二个阈值。另请参阅:Canny86
      • cornerMinEigenVal

        public static void cornerMinEigenVal​(Mat src,
                                             Mat dst,
                                             int blockSize,
                                             int ksize,
                                             int borderType)
        计算用于角点检测的梯度矩阵的最小特征值。该函数类似于 cornerEigenValsAndVecs,但它仅计算并存储协方差矩阵导数的最小特征值,即在 cornerEigenValsAndVecs 描述的公式中 \(\min(\lambda_1, \lambda_2)\)。
        参数
        src - 输入单通道 8 位或浮点图像。
        dst - 用于存储最小特征值的图像。其类型为 CV_32FC1,大小与 src 相同。
        blockSize - 邻域大小(有关详细信息,请参阅 #cornerEigenValsAndVecs)。
        ksize - Sobel 算子的孔径参数。
        borderType - 像素外插方法。请参阅 #BorderTypes。不支持 #BORDER_WRAP。
      • cornerMinEigenVal

        public static void cornerMinEigenVal​(Mat src,
                                             Mat dst,
                                             int blockSize,
                                             int ksize)
        计算用于角点检测的梯度矩阵的最小特征值。该函数类似于 cornerEigenValsAndVecs,但它仅计算并存储协方差矩阵导数的最小特征值,即在 cornerEigenValsAndVecs 描述的公式中 \(\min(\lambda_1, \lambda_2)\)。
        参数
        src - 输入单通道 8 位或浮点图像。
        dst - 用于存储最小特征值的图像。其类型为 CV_32FC1,大小与 src 相同。
        blockSize - 邻域大小(有关详细信息,请参阅 #cornerEigenValsAndVecs)。
        ksize - Sobel 算子的孔径参数。
      • cornerMinEigenVal

        public static void cornerMinEigenVal​(Mat src,
                                             Mat dst,
                                             int blockSize)
        计算用于角点检测的梯度矩阵的最小特征值。该函数类似于 cornerEigenValsAndVecs,但它仅计算并存储协方差矩阵导数的最小特征值,即在 cornerEigenValsAndVecs 描述的公式中 \(\min(\lambda_1, \lambda_2)\)。
        参数
        src - 输入单通道 8 位或浮点图像。
        dst - 用于存储最小特征值的图像。其类型为 CV_32FC1,大小与 src 相同。
        blockSize - 邻域大小(有关详细信息,请参阅 #cornerEigenValsAndVecs)。
      • cornerHarris

        public static void cornerHarris​(Mat src,
                                        Mat dst,
                                        int blockSize,
                                        int ksize,
                                        double k,
                                        int borderType)
        Harris 角点检测器。该函数在图像上运行 Harris 角点检测器。与 cornerMinEigenVal 和 cornerEigenValsAndVecs 类似,对于每个像素 \((x, y)\),它在 \(\texttt{blockSize} \times \texttt{blockSize}\) 的邻域内计算一个 \(2\times2\) 的梯度协方差矩阵 \(M^{(x,y)}\)。然后,它计算以下特征:\(\texttt{dst} (x,y) = \mathrm{det} M^{(x,y)} - k \cdot \left ( \mathrm{tr} M^{(x,y)} \right )^2\)。图像中的角点可以作为此响应图的局部最大值找到。
        参数
        src - 输入单通道 8 位或浮点图像。
        dst - 用于存储 Harris 检测器响应的图像。其类型为 CV_32FC1,大小与 src 相同。
        blockSize - 邻域大小(有关详细信息,请参阅 #cornerEigenValsAndVecs)。
        ksize - Sobel 算子的孔径参数。
        k - Harris 检测器的自由参数。请参阅上面的公式。
        borderType - 像素外插方法。请参阅 #BorderTypes。不支持 #BORDER_WRAP。
      • cornerHarris

        public static void cornerHarris​(Mat src,
                                        Mat dst,
                                        int blockSize,
                                        int ksize,
                                        double k)
        Harris 角点检测器。该函数在图像上运行 Harris 角点检测器。与 cornerMinEigenVal 和 cornerEigenValsAndVecs 类似,对于每个像素 \((x, y)\),它在 \(\texttt{blockSize} \times \texttt{blockSize}\) 的邻域内计算一个 \(2\times2\) 的梯度协方差矩阵 \(M^{(x,y)}\)。然后,它计算以下特征:\(\texttt{dst} (x,y) = \mathrm{det} M^{(x,y)} - k \cdot \left ( \mathrm{tr} M^{(x,y)} \right )^2\)。图像中的角点可以作为此响应图的局部最大值找到。
        参数
        src - 输入单通道 8 位或浮点图像。
        dst - 用于存储 Harris 检测器响应的图像。其类型为 CV_32FC1,大小与 src 相同。
        blockSize - 邻域大小(有关详细信息,请参阅 #cornerEigenValsAndVecs)。
        ksize - Sobel 算子的孔径参数。
        k - Harris 检测器的自由参数。请参阅上面的公式。
      • cornerEigenValsAndVecs

        public static void cornerEigenValsAndVecs​(Mat src,
                                                  Mat dst,
                                                  int blockSize,
                                                  int ksize,
                                                  int borderType)
        计算用于角点检测的图像块的特征值和特征向量。对于每个像素 \(p\),函数 cornerEigenValsAndVecs 会考虑一个 blockSize \(\times\) blockSize 的邻域 \(S(p)\)。它计算邻域内的导数协方差矩阵:\(M = \begin{bmatrix} \sum _{S(p)}(dI/dx)^2 & \sum _{S(p)}dI/dx dI/dy \\ \sum _{S(p)}dI/dx dI/dy & \sum _{S(p)}(dI/dy)^2 \end{bmatrix}\) 其中导数使用 Sobel 算子计算。之后,它找到 \(M\) 的特征向量和特征值,并将它们存储在目标图像中,格式为 \((\lambda_1, \lambda_2, x_1, y_1, x_2, y_2)\),其中
        • \(\lambda_1, \lambda_2\) 是 \(M\) 的非排序特征值
        • \(x_1, y_1\) 是对应于 \(\lambda_1\) 的特征向量
        • \(x_2, y_2\) 是对应于 \(\lambda_2\) 的特征向量
        该函数的输出可用于稳健的边缘或角点检测。
        参数
        src - 输入单通道 8 位或浮点图像。
        dst - 用于存储结果的图像。其大小与 src 相同,类型为 CV_32FC(6)。
        blockSize - 邻域大小(详见下文)。
        ksize - Sobel 算子的孔径参数。
        borderType - 像素外插方法。请参阅 #BorderTypes。不支持 #BORDER_WRAP。另请参阅:cornerMinEigenVal、cornerHarris、preCornerDetect
      • cornerEigenValsAndVecs

        public static void cornerEigenValsAndVecs​(Mat src,
                                                  Mat dst,
                                                  int blockSize,
                                                  int ksize)
        计算用于角点检测的图像块的特征值和特征向量。对于每个像素 \(p\),函数 cornerEigenValsAndVecs 会考虑一个 blockSize \(\times\) blockSize 的邻域 \(S(p)\)。它计算邻域内的导数协方差矩阵:\(M = \begin{bmatrix} \sum _{S(p)}(dI/dx)^2 & \sum _{S(p)}dI/dx dI/dy \\ \sum _{S(p)}dI/dx dI/dy & \sum _{S(p)}(dI/dy)^2 \end{bmatrix}\) 其中导数使用 Sobel 算子计算。之后,它找到 \(M\) 的特征向量和特征值,并将它们存储在目标图像中,格式为 \((\lambda_1, \lambda_2, x_1, y_1, x_2, y_2)\),其中
        • \(\lambda_1, \lambda_2\) 是 \(M\) 的非排序特征值
        • \(x_1, y_1\) 是对应于 \(\lambda_1\) 的特征向量
        • \(x_2, y_2\) 是对应于 \(\lambda_2\) 的特征向量
        该函数的输出可用于稳健的边缘或角点检测。
        参数
        src - 输入单通道 8 位或浮点图像。
        dst - 用于存储结果的图像。其大小与 src 相同,类型为 CV_32FC(6)。
        blockSize - 邻域大小(详见下文)。
        ksize - Sobel 算子的孔径参数。另请参阅:cornerMinEigenVal、cornerHarris、preCornerDetect
      • preCornerDetect

        public static void preCornerDetect​(Mat src,
                                           Mat dst,
                                           int ksize,
                                           int borderType)
        计算用于角点检测的特征图。该函数计算源图像的基于复杂空间导数的函数 \(\texttt{dst} = (D_x \texttt{src} )^2 \cdot D_{yy} \texttt{src} + (D_y \texttt{src} )^2 \cdot D_{xx} \texttt{src} - 2 D_x \texttt{src} \cdot D_y \texttt{src} \cdot D_{xy} \texttt{src}\),其中 \(D_x\), \(D_y\) 是一阶图像导数,\(D_{xx}\), \(D_{yy}\) 是二阶图像导数,\(D_{xy}\) 是混合导数。角点可以作为函数 \(f(x,y) = \det M^{(x,y)} - k (\mathrm{tr} M^{(x,y)})^2\) 的局部最大值找到: Mat corners, dilated_corners; preCornerDetect(image, corners, 3); // dilation with 3x3 rectangular structuring element dilate(corners, dilated_corners, Mat(), 1); Mat corner_mask = corners == dilated_corners;
        参数
        src - 源单通道 8 位或浮点图像。
        dst - 输出图像,类型为 CV_32F,大小与 src 相同。
        ksize - Sobel 的孔径大小。
        borderType - 像素外插方法。请参阅 #BorderTypes。不支持 #BORDER_WRAP。
      • preCornerDetect

        public static void preCornerDetect​(Mat src,
                                           Mat dst,
                                           int ksize)
        计算用于角点检测的特征图。该函数计算源图像的基于复杂空间导数的函数 \(\texttt{dst} = (D_x \texttt{src} )^2 \cdot D_{yy} \texttt{src} + (D_y \texttt{src} )^2 \cdot D_{xx} \texttt{src} - 2 D_x \texttt{src} \cdot D_y \texttt{src} \cdot D_{xy} \texttt{src}\),其中 \(D_x\), \(D_y\) 是一阶图像导数,\(D_{xx}\), \(D_{yy}\) 是二阶图像导数,\(D_{xy}\) 是混合导数。角点可以作为函数 \(f(x,y) = \det M^{(x,y)} - k (\mathrm{tr} M^{(x,y)})^2\) 的局部最大值找到: Mat corners, dilated_corners; preCornerDetect(image, corners, 3); // dilation with 3x3 rectangular structuring element dilate(corners, dilated_corners, Mat(), 1); Mat corner_mask = corners == dilated_corners;
        参数
        src - 源单通道 8 位或浮点图像。
        dst - 输出图像,类型为 CV_32F,大小与 src 相同。
        ksize - Sobel 的孔径大小。
      • cornerSubPix

        public static void cornerSubPix​(Mat image,
                                        Mat corners,
                                        Size winSize,
                                        Size zeroZone,
                                        TermCriteria criteria)
        精炼角点位置。该函数迭代查找角点或径向鞍点的亚像素精度位置,如 CITE: forstner1987fast 中所述,并在下图所示:![image](pics/cornersubpix.png) 亚像素精度角点定位器基于以下观察:从中心 \(q\) 到位于 \(q\) 邻域内的点 \(p\) 的每个向量都垂直于 \(p\) 处的图像梯度,并假定图像和测量噪声。考虑表达式:\(\epsilon _i = {DI_{p_i}}^T \cdot (q - p_i)\),其中 \({DI_{p_i}}\) 是 \(q\) 邻域内某点 \(p_i\) 处的图像梯度。值 \(q\) 的选择是为了使 \(\epsilon_i\) 最小化。可以建立一个方程组,其中 \(\epsilon_i\) 设置为零:\(\sum _i(DI_{p_i} \cdot {DI_{p_i}}^T) \cdot q - \sum _i(DI_{p_i} \cdot {DI_{p_i}}^T \cdot p_i)\),其中梯度在 \(q\) 的邻域(“搜索窗口”)内求和。将第一个梯度项 \(G\) 和第二个梯度项 \(b\) 命名为:\(q = G^{-1} \cdot b\) 该算法将邻域窗口的中心设置在此新中心 \(q\) 上,然后迭代,直到中心保持在设定的阈值内。
        参数
        image - 输入单通道、8 位或浮点图像。
        corners - 输入角点的初始坐标和为输出提供的精炼坐标。
        winSize - 搜索窗口边长的一半。例如,如果 winSize=Size(5,5) ,则使用 \((5*2+1) \times (5*2+1) = 11 \times 11\) 的搜索窗口。
        zeroZone - 搜索区域中间死区大小的一半,在该区域上不执行下面公式中的求和。有时用于避免自相关矩阵的潜在奇异性。值 (-1,-1) 表示没有这样的大小。
        criteria - 终止角点精炼迭代过程的标准。也就是说,角点位置精炼过程要么在 criteria.maxCount 次迭代后停止,要么在某次迭代中角点位置移动小于 criteria.epsilon 时停止。
      • goodFeaturesToTrack

        public static void goodFeaturesToTrack​(Mat image,
                                               MatOfPoint corners,
                                               int maxCorners,
                                               double qualityLevel,
                                               double minDistance,
                                               Mat mask,
                                               int blockSize,
                                               boolean useHarrisDetector,
                                               double k)
        在图像上确定强角点。该函数在图像或指定图像区域中查找最突出的角点,如 CITE: Shi94 中所述。
        • 该函数使用 #cornerMinEigenVal 或 #cornerHarris 在每个源图像像素上计算角点质量度量。
        • 该函数执行非极大值抑制(保留 *3 x 3* 邻域中的局部极大值)。
        • 最小特征值小于 \(\texttt{qualityLevel} \cdot \max_{x,y} qualityMeasureMap(x,y)\) 的角点将被剔除。
        • 剩余的角点按质量测量值降序排列。
        • 函数剔除在小于 maxDistance 距离内存在更强角点的每个角点。
        该函数可用于初始化基于点的对象跟踪器。注意: 如果使用不同的参数值 A 和 B 调用该函数,且 A > B,则参数 qualityLevel=A 返回的角点向量将是参数 qualityLevel=B 返回的输出向量的前缀。
        参数
        image - 输入 8 位或浮点 32 位单通道图像。
        corners - 检测到的角点的输出向量。
        maxCorners - 返回角点的最大数量。如果找到的角点多于此数量,则返回其中最强的。maxCorners &lt;= 0 表示没有最大限制,返回所有检测到的角点。
        qualityLevel - 描述图像角点最小可接受质量的参数。该参数值乘以最佳角点质量度量,即最小特征值(参见 #cornerMinEigenVal)或 Harris 函数响应(参见 #cornerHarris)。质量度量小于该乘积的角点将被拒绝。例如,如果最佳角点质量度量为 1500,qualityLevel 为 0.01,则所有质量度量小于 15 的角点都将被拒绝。
        minDistance - 返回的角点之间可能的最小欧氏距离。
        mask - 可选的感兴趣区域。如果图像不为空(它需要具有 CV_8UC1 类型且大小与 image 相同),则指定检测角点的区域。
        blockSize - 用于在每个像素邻域上计算导数协方差矩阵的平均块大小。请参阅 cornerEigenValsAndVecs。
        useHarrisDetector - 指示是使用 Harris 检测器(参见 #cornerHarris)还是 #cornerMinEigenVal 的参数。
        k - Harris 检测器的自由参数。另请参阅:cornerMinEigenVal、cornerHarris、calcOpticalFlowPyrLK、estimateRigidTransform、
      • goodFeaturesToTrack

        public static void goodFeaturesToTrack​(Mat image,
                                               MatOfPoint corners,
                                               int maxCorners,
                                               double qualityLevel,
                                               double minDistance,
                                               Mat mask,
                                               int blockSize,
                                               boolean useHarrisDetector)
        在图像上确定强角点。该函数在图像或指定图像区域中查找最突出的角点,如 CITE: Shi94 中所述。
        • 该函数使用 #cornerMinEigenVal 或 #cornerHarris 在每个源图像像素上计算角点质量度量。
        • 该函数执行非极大值抑制(保留 *3 x 3* 邻域中的局部极大值)。
        • 最小特征值小于 \(\texttt{qualityLevel} \cdot \max_{x,y} qualityMeasureMap(x,y)\) 的角点将被剔除。
        • 剩余的角点按质量测量值降序排列。
        • 函数剔除在小于 maxDistance 距离内存在更强角点的每个角点。
        该函数可用于初始化基于点的对象跟踪器。注意: 如果使用不同的参数值 A 和 B 调用该函数,且 A > B,则参数 qualityLevel=A 返回的角点向量将是参数 qualityLevel=B 返回的输出向量的前缀。
        参数
        image - 输入 8 位或浮点 32 位单通道图像。
        corners - 检测到的角点的输出向量。
        maxCorners - 返回角点的最大数量。如果找到的角点多于此数量,则返回其中最强的。maxCorners &lt;= 0 表示没有最大限制,返回所有检测到的角点。
        qualityLevel - 描述图像角点最小可接受质量的参数。该参数值乘以最佳角点质量度量,即最小特征值(参见 #cornerMinEigenVal)或 Harris 函数响应(参见 #cornerHarris)。质量度量小于该乘积的角点将被拒绝。例如,如果最佳角点质量度量为 1500,qualityLevel 为 0.01,则所有质量度量小于 15 的角点都将被拒绝。
        minDistance - 返回的角点之间可能的最小欧氏距离。
        mask - 可选的感兴趣区域。如果图像不为空(它需要具有 CV_8UC1 类型且大小与 image 相同),则指定检测角点的区域。
        blockSize - 用于在每个像素邻域上计算导数协方差矩阵的平均块大小。请参阅 cornerEigenValsAndVecs。
        useHarrisDetector - 指示是使用 Harris 检测器(参见 #cornerHarris)还是 #cornerMinEigenVal 的参数。另请参阅:cornerMinEigenVal、cornerHarris、calcOpticalFlowPyrLK、estimateRigidTransform、
      • goodFeaturesToTrack

        public static void goodFeaturesToTrack​(Mat image,
                                               MatOfPoint corners,
                                               int maxCorners,
                                               double qualityLevel,
                                               double minDistance,
                                               Mat mask,
                                               int blockSize)
        在图像上确定强角点。该函数在图像或指定图像区域中查找最突出的角点,如 CITE: Shi94 中所述。
        • 该函数使用 #cornerMinEigenVal 或 #cornerHarris 在每个源图像像素上计算角点质量度量。
        • 该函数执行非极大值抑制(保留 *3 x 3* 邻域中的局部极大值)。
        • 最小特征值小于 \(\texttt{qualityLevel} \cdot \max_{x,y} qualityMeasureMap(x,y)\) 的角点将被剔除。
        • 剩余的角点按质量测量值降序排列。
        • 函数剔除在小于 maxDistance 距离内存在更强角点的每个角点。
        该函数可用于初始化基于点的对象跟踪器。注意: 如果使用不同的参数值 A 和 B 调用该函数,且 A > B,则参数 qualityLevel=A 返回的角点向量将是参数 qualityLevel=B 返回的输出向量的前缀。
        参数
        image - 输入 8 位或浮点 32 位单通道图像。
        corners - 检测到的角点的输出向量。
        maxCorners - 返回角点的最大数量。如果找到的角点多于此数量,则返回其中最强的。maxCorners &lt;= 0 表示没有最大限制,返回所有检测到的角点。
        qualityLevel - 描述图像角点最小可接受质量的参数。该参数值乘以最佳角点质量度量,即最小特征值(参见 #cornerMinEigenVal)或 Harris 函数响应(参见 #cornerHarris)。质量度量小于该乘积的角点将被拒绝。例如,如果最佳角点质量度量为 1500,qualityLevel 为 0.01,则所有质量度量小于 15 的角点都将被拒绝。
        minDistance - 返回的角点之间可能的最小欧氏距离。
        mask - 可选的感兴趣区域。如果图像不为空(它需要具有 CV_8UC1 类型且大小与 image 相同),则指定检测角点的区域。
        blockSize - 用于在每个像素邻域上计算导数协方差矩阵的平均块大小。另请参阅:cornerEigenValsAndVecs 或 #cornerMinEigenVal。另请参阅:cornerMinEigenVal、cornerHarris、calcOpticalFlowPyrLK、estimateRigidTransform、
      • goodFeaturesToTrack

        public static void goodFeaturesToTrack​(Mat image,
                                               MatOfPoint corners,
                                               int maxCorners,
                                               double qualityLevel,
                                               double minDistance,
                                               Mat mask)
        在图像上确定强角点。该函数在图像或指定图像区域中查找最突出的角点,如 CITE: Shi94 中所述。
        • 该函数使用 #cornerMinEigenVal 或 #cornerHarris 在每个源图像像素上计算角点质量度量。
        • 该函数执行非极大值抑制(保留 *3 x 3* 邻域中的局部极大值)。
        • 最小特征值小于 \(\texttt{qualityLevel} \cdot \max_{x,y} qualityMeasureMap(x,y)\) 的角点将被剔除。
        • 剩余的角点按质量测量值降序排列。
        • 函数剔除在小于 maxDistance 距离内存在更强角点的每个角点。
        该函数可用于初始化基于点的对象跟踪器。注意: 如果使用不同的参数值 A 和 B 调用该函数,且 A > B,则参数 qualityLevel=A 返回的角点向量将是参数 qualityLevel=B 返回的输出向量的前缀。
        参数
        image - 输入 8 位或浮点 32 位单通道图像。
        corners - 检测到的角点的输出向量。
        maxCorners - 返回角点的最大数量。如果找到的角点多于此数量,则返回其中最强的。maxCorners &lt;= 0 表示没有最大限制,返回所有检测到的角点。
        qualityLevel - 描述图像角点最小可接受质量的参数。该参数值乘以最佳角点质量度量,即最小特征值(参见 #cornerMinEigenVal)或 Harris 函数响应(参见 #cornerHarris)。质量度量小于该乘积的角点将被拒绝。例如,如果最佳角点质量度量为 1500,qualityLevel 为 0.01,则所有质量度量小于 15 的角点都将被拒绝。
        minDistance - 返回的角点之间可能的最小欧氏距离。
        mask - 可选的感兴趣区域。如果图像不为空(它需要具有 CV_8UC1 类型且大小与 image 相同),则指定检测角点的区域。另请参阅:cornerMinEigenVal、cornerHarris、calcOpticalFlowPyrLK、estimateRigidTransform、
      • goodFeaturesToTrack

        public static void goodFeaturesToTrack​(Mat image,
                                               MatOfPoint corners,
                                               int maxCorners,
                                               double qualityLevel,
                                               double minDistance)
        在图像上确定强角点。该函数在图像或指定图像区域中查找最突出的角点,如 CITE: Shi94 中所述。
        • 该函数使用 #cornerMinEigenVal 或 #cornerHarris 在每个源图像像素上计算角点质量度量。
        • 该函数执行非极大值抑制(保留 *3 x 3* 邻域中的局部极大值)。
        • 最小特征值小于 \(\texttt{qualityLevel} \cdot \max_{x,y} qualityMeasureMap(x,y)\) 的角点将被剔除。
        • 剩余的角点按质量测量值降序排列。
        • 函数剔除在小于 maxDistance 距离内存在更强角点的每个角点。
        该函数可用于初始化基于点的对象跟踪器。注意: 如果使用不同的参数值 A 和 B 调用该函数,且 A > B,则参数 qualityLevel=A 返回的角点向量将是参数 qualityLevel=B 返回的输出向量的前缀。
        参数
        image - 输入 8 位或浮点 32 位单通道图像。
        corners - 检测到的角点的输出向量。
        maxCorners - 返回角点的最大数量。如果找到的角点多于此数量,则返回其中最强的。maxCorners &lt;= 0 表示没有最大限制,返回所有检测到的角点。
        qualityLevel - 描述图像角点最小可接受质量的参数。该参数值乘以最佳角点质量度量,即最小特征值(参见 #cornerMinEigenVal)或 Harris 函数响应(参见 #cornerHarris)。质量度量小于该乘积的角点将被拒绝。例如,如果最佳角点质量度量为 1500,qualityLevel 为 0.01,则所有质量度量小于 15 的角点都将被拒绝。
        minDistance - 返回的角点之间可能的最小欧氏距离。另请参阅:cornerMinEigenVal、cornerHarris、calcOpticalFlowPyrLK、estimateRigidTransform、
      • goodFeaturesToTrack

        public static void goodFeaturesToTrack​(Mat image,
                                               MatOfPoint corners,
                                               int maxCorners,
                                               double qualityLevel,
                                               double minDistance,
                                               Mat mask,
                                               int blockSize,
                                               int gradientSize,
                                               boolean useHarrisDetector,
                                               double k)
      • goodFeaturesToTrack

        public static void goodFeaturesToTrack​(Mat image,
                                               MatOfPoint corners,
                                               int maxCorners,
                                               double qualityLevel,
                                               double minDistance,
                                               Mat mask,
                                               int blockSize,
                                               int gradientSize,
                                               boolean useHarrisDetector)
      • goodFeaturesToTrack

        public static void goodFeaturesToTrack​(Mat image,
                                               MatOfPoint corners,
                                               int maxCorners,
                                               double qualityLevel,
                                               double minDistance,
                                               Mat mask,
                                               int blockSize,
                                               int gradientSize)
      • goodFeaturesToTrackWithQuality

        public static void goodFeaturesToTrackWithQuality​(Mat image,
                                                          Mat corners,
                                                          int maxCorners,
                                                          double qualityLevel,
                                                          double minDistance,
                                                          Mat mask,
                                                          Mat cornersQuality,
                                                          int blockSize,
                                                          int gradientSize,
                                                          boolean useHarrisDetector,
                                                          double k)
        与上述相同,但同时返回检测到的角点的质量度量。
        参数
        image - 输入 8 位或浮点 32 位单通道图像。
        corners - 检测到的角点的输出向量。
        maxCorners - 返回角点的最大数量。如果找到的角点多于此数量,则返回其中最强的。maxCorners &lt;= 0 表示没有最大限制,返回所有检测到的角点。
        qualityLevel - 描述图像角点最小可接受质量的参数。该参数值乘以最佳角点质量度量,即最小特征值(参见 #cornerMinEigenVal)或 Harris 函数响应(参见 #cornerHarris)。质量度量小于该乘积的角点将被拒绝。例如,如果最佳角点质量度量为 1500,qualityLevel 为 0.01,则所有质量度量小于 15 的角点都将被拒绝。
        minDistance - 返回的角点之间可能的最小欧氏距离。
        mask - 感兴趣区域。如果图像不为空(它需要具有 CV_8UC1 类型且大小与 image 相同),则指定检测角点的区域。
        cornersQuality - 检测到的角点质量度量的输出向量。
        blockSize - 用于在每个像素邻域上计算导数协方差矩阵的平均块大小。请参阅 cornerEigenValsAndVecs。
        gradientSize - 用于导数计算的 Sobel 算子的孔径参数。另请参阅:cornerEigenValsAndVecs。
        useHarrisDetector - 指示是使用 Harris 检测器(参见 #cornerHarris)还是 #cornerMinEigenVal 的参数。
        k - Harris 检测器的自由参数。
      • goodFeaturesToTrackWithQuality

        public static void goodFeaturesToTrackWithQuality​(Mat image,
                                                          Mat corners,
                                                          int maxCorners,
                                                          double qualityLevel,
                                                          double minDistance,
                                                          Mat mask,
                                                          Mat cornersQuality,
                                                          int blockSize,
                                                          int gradientSize,
                                                          boolean useHarrisDetector)
        与上述相同,但同时返回检测到的角点的质量度量。
        参数
        image - 输入 8 位或浮点 32 位单通道图像。
        corners - 检测到的角点的输出向量。
        maxCorners - 返回角点的最大数量。如果找到的角点多于此数量,则返回其中最强的。maxCorners &lt;= 0 表示没有最大限制,返回所有检测到的角点。
        qualityLevel - 描述图像角点最小可接受质量的参数。该参数值乘以最佳角点质量度量,即最小特征值(参见 #cornerMinEigenVal)或 Harris 函数响应(参见 #cornerHarris)。质量度量小于该乘积的角点将被拒绝。例如,如果最佳角点质量度量为 1500,qualityLevel 为 0.01,则所有质量度量小于 15 的角点都将被拒绝。
        minDistance - 返回的角点之间可能的最小欧氏距离。
        mask - 感兴趣区域。如果图像不为空(它需要具有 CV_8UC1 类型且大小与 image 相同),则指定检测角点的区域。
        cornersQuality - 检测到的角点质量度量的输出向量。
        blockSize - 用于在每个像素邻域上计算导数协方差矩阵的平均块大小。请参阅 cornerEigenValsAndVecs。
        gradientSize - 用于导数计算的 Sobel 算子的孔径参数。另请参阅:cornerEigenValsAndVecs。
        useHarrisDetector - 指示是使用 Harris 检测器(参见 #cornerHarris)还是 #cornerMinEigenVal 的参数。
      • goodFeaturesToTrackWithQuality

        public static void goodFeaturesToTrackWithQuality​(Mat image,
                                                          Mat corners,
                                                          int maxCorners,
                                                          double qualityLevel,
                                                          double minDistance,
                                                          Mat mask,
                                                          Mat cornersQuality,
                                                          int blockSize,
                                                          int gradientSize)
        与上述相同,但同时返回检测到的角点的质量度量。
        参数
        image - 输入 8 位或浮点 32 位单通道图像。
        corners - 检测到的角点的输出向量。
        maxCorners - 返回角点的最大数量。如果找到的角点多于此数量,则返回其中最强的。maxCorners &lt;= 0 表示没有最大限制,返回所有检测到的角点。
        qualityLevel - 描述图像角点最小可接受质量的参数。该参数值乘以最佳角点质量度量,即最小特征值(参见 #cornerMinEigenVal)或 Harris 函数响应(参见 #cornerHarris)。质量度量小于该乘积的角点将被拒绝。例如,如果最佳角点质量度量为 1500,qualityLevel 为 0.01,则所有质量度量小于 15 的角点都将被拒绝。
        minDistance - 返回的角点之间可能的最小欧氏距离。
        mask - 感兴趣区域。如果图像不为空(它需要具有 CV_8UC1 类型且大小与 image 相同),则指定检测角点的区域。
        cornersQuality - 检测到的角点质量度量的输出向量。
        blockSize - 用于在每个像素邻域上计算导数协方差矩阵的平均块大小。请参阅 cornerEigenValsAndVecs。
        gradientSize - 用于导数计算的 Sobel 算子的孔径参数。另请参阅:cornerEigenValsAndVecs。或 #cornerMinEigenVal。
      • goodFeaturesToTrackWithQuality

        public static void goodFeaturesToTrackWithQuality​(Mat image,
                                                          Mat corners,
                                                          int maxCorners,
                                                          double qualityLevel,
                                                          double minDistance,
                                                          Mat mask,
                                                          Mat cornersQuality,
                                                          int blockSize)
        与上述相同,但同时返回检测到的角点的质量度量。
        参数
        image - 输入 8 位或浮点 32 位单通道图像。
        corners - 检测到的角点的输出向量。
        maxCorners - 返回角点的最大数量。如果找到的角点多于此数量,则返回其中最强的。maxCorners &lt;= 0 表示没有最大限制,返回所有检测到的角点。
        qualityLevel - 描述图像角点最小可接受质量的参数。该参数值乘以最佳角点质量度量,即最小特征值(参见 #cornerMinEigenVal)或 Harris 函数响应(参见 #cornerHarris)。质量度量小于该乘积的角点将被拒绝。例如,如果最佳角点质量度量为 1500,qualityLevel 为 0.01,则所有质量度量小于 15 的角点都将被拒绝。
        minDistance - 返回的角点之间可能的最小欧氏距离。
        mask - 感兴趣区域。如果图像不为空(它需要具有 CV_8UC1 类型且大小与 image 相同),则指定检测角点的区域。
        cornersQuality - 检测到的角点质量度量的输出向量。
        blockSize - 用于在每个像素邻域上计算导数协方差矩阵的平均块大小。另请参阅:cornerEigenValsAndVecs。或 #cornerMinEigenVal。
      • goodFeaturesToTrackWithQuality

        public static void goodFeaturesToTrackWithQuality​(Mat image,
                                                          Mat corners,
                                                          int maxCorners,
                                                          double qualityLevel,
                                                          double minDistance,
                                                          Mat mask,
                                                          Mat cornersQuality)
        与上述相同,但同时返回检测到的角点的质量度量。
        参数
        image - 输入 8 位或浮点 32 位单通道图像。
        corners - 检测到的角点的输出向量。
        maxCorners - 返回角点的最大数量。如果找到的角点多于此数量,则返回其中最强的。maxCorners &lt;= 0 表示没有最大限制,返回所有检测到的角点。
        qualityLevel - 描述图像角点最小可接受质量的参数。该参数值乘以最佳角点质量度量,即最小特征值(参见 #cornerMinEigenVal)或 Harris 函数响应(参见 #cornerHarris)。质量度量小于该乘积的角点将被拒绝。例如,如果最佳角点质量度量为 1500,qualityLevel 为 0.01,则所有质量度量小于 15 的角点都将被拒绝。
        minDistance - 返回的角点之间可能的最小欧氏距离。
        mask - 感兴趣区域。如果图像不为空(它需要具有 CV_8UC1 类型且大小与 image 相同),则指定检测角点的区域。
        cornersQuality - 检测到的角点质量度量的输出向量。另请参阅:cornerEigenValsAndVecs。或 #cornerMinEigenVal。
      • HoughLines

        public static void HoughLines​(Mat image,
                                      Mat lines,
                                      double rho,
                                      double theta,
                                      int threshold,
                                      double srn,
                                      double stn,
                                      double min_theta,
                                      double max_theta,
                                      boolean use_edgeval)
        使用标准霍夫变换在二值图像中查找直线。该函数实现了用于直线检测的标准或标准多尺度霍夫变换算法。有关霍夫变换的良好解释,请参阅 <https://homepages.inf.ed.ac.uk/rbf/HIPR2/hough.htm>。
        参数
        image - 8 位、单通道、二值源图像。图像可能会被函数修改。
        lines - 输出直线向量。每条直线表示为一个 2 或 3 元素的向量 \((\rho, \theta)\) 或 \((\rho, \theta, \textrm{votes})\),其中 \(\rho\) 是到坐标原点 \((0,0)\)(图像左上角)的距离,\(\theta\) 是弧度制的直线旋转角度( \(0 \sim\) 垂直线, \(\pi/2 \sim\) 水平线),\(\textrm{votes}\) 是累加器的值。
        rho - 累加器的距离分辨率(以像素为单位)。
        theta - 累加器的角度分辨率(以弧度为单位)。
        threshold - 累加器阈值参数。仅返回获得足够投票( \(>\texttt{threshold}\) )的直线。
        srn - 对于多尺度霍夫变换,它是距离分辨率 rho 的除数。粗略累加器的距离分辨率为 rho,精确累加器的分辨率为 rho/srn。如果 srn=0 且 stn=0,则使用经典霍夫变换。否则,这两个参数都应为正数。
        stn - 对于多尺度霍夫变换,它是距离分辨率 theta 的除数。
        min_theta - 对于标准和多尺度霍夫变换,要检查直线的最小角度。必须在 0 和 max_theta 之间。
        max_theta - 对于标准和多尺度霍夫变换,角度的上限。必须在 min_theta 和 CV_PI 之间。实际的最大角度可能略小于 max_theta,具体取决于参数 min_theta 和 theta。
        use_edgeval - 如果您想使用加权霍夫变换,则为 True。
      • HoughLines

        public static void HoughLines​(Mat image,
                                      Mat lines,
                                      double rho,
                                      double theta,
                                      int threshold,
                                      double srn,
                                      double stn,
                                      double min_theta,
                                      double max_theta)
        使用标准霍夫变换在二值图像中查找直线。该函数实现了用于直线检测的标准或标准多尺度霍夫变换算法。有关霍夫变换的良好解释,请参阅 <https://homepages.inf.ed.ac.uk/rbf/HIPR2/hough.htm>。
        参数
        image - 8 位、单通道、二值源图像。图像可能会被函数修改。
        lines - 输出直线向量。每条直线表示为一个 2 或 3 元素的向量 \((\rho, \theta)\) 或 \((\rho, \theta, \textrm{votes})\),其中 \(\rho\) 是到坐标原点 \((0,0)\)(图像左上角)的距离,\(\theta\) 是弧度制的直线旋转角度( \(0 \sim\) 垂直线, \(\pi/2 \sim\) 水平线),\(\textrm{votes}\) 是累加器的值。
        rho - 累加器的距离分辨率(以像素为单位)。
        theta - 累加器的角度分辨率(以弧度为单位)。
        threshold - 累加器阈值参数。仅返回获得足够投票( \(>\texttt{threshold}\) )的直线。
        srn - 对于多尺度霍夫变换,它是距离分辨率 rho 的除数。粗略累加器的距离分辨率为 rho,精确累加器的分辨率为 rho/srn。如果 srn=0 且 stn=0,则使用经典霍夫变换。否则,这两个参数都应为正数。
        stn - 对于多尺度霍夫变换,它是距离分辨率 theta 的除数。
        min_theta - 对于标准和多尺度霍夫变换,要检查直线的最小角度。必须在 0 和 max_theta 之间。
        max_theta - 对于标准和多尺度霍夫变换,角度的上限。必须在 min_theta 和 CV_PI 之间。实际的最大角度可能略小于 max_theta,具体取决于参数 min_theta 和 theta。
      • HoughLines

        public static void HoughLines​(Mat image,
                                      Mat lines,
                                      double rho,
                                      double theta,
                                      int threshold,
                                      double srn,
                                      double stn,
                                      double min_theta)
        使用标准霍夫变换在二值图像中查找直线。该函数实现了用于直线检测的标准或标准多尺度霍夫变换算法。有关霍夫变换的良好解释,请参阅 <https://homepages.inf.ed.ac.uk/rbf/HIPR2/hough.htm>。
        参数
        image - 8 位、单通道、二值源图像。图像可能会被函数修改。
        lines - 输出直线向量。每条直线表示为一个 2 或 3 元素的向量 \((\rho, \theta)\) 或 \((\rho, \theta, \textrm{votes})\),其中 \(\rho\) 是到坐标原点 \((0,0)\)(图像左上角)的距离,\(\theta\) 是弧度制的直线旋转角度( \(0 \sim\) 垂直线, \(\pi/2 \sim\) 水平线),\(\textrm{votes}\) 是累加器的值。
        rho - 累加器的距离分辨率(以像素为单位)。
        theta - 累加器的角度分辨率(以弧度为单位)。
        threshold - 累加器阈值参数。仅返回获得足够投票( \(>\texttt{threshold}\) )的直线。
        srn - 对于多尺度霍夫变换,它是距离分辨率 rho 的除数。粗略累加器的距离分辨率为 rho,精确累加器的分辨率为 rho/srn。如果 srn=0 且 stn=0,则使用经典霍夫变换。否则,这两个参数都应为正数。
        stn - 对于多尺度霍夫变换,它是距离分辨率 theta 的除数。
        min_theta - 对于标准和多尺度霍夫变换,要检查直线的最小角度。必须在 0 和 max_theta 之间。必须在 min_theta 和 CV_PI 之间。实际的最大角度可能略小于 max_theta,具体取决于参数 min_theta 和 theta。
      • HoughLines

        public static void HoughLines​(Mat image,
                                      Mat lines,
                                      double rho,
                                      double theta,
                                      int threshold,
                                      double srn,
                                      double stn)
        使用标准霍夫变换在二值图像中查找直线。该函数实现了用于直线检测的标准或标准多尺度霍夫变换算法。有关霍夫变换的良好解释,请参阅 <https://homepages.inf.ed.ac.uk/rbf/HIPR2/hough.htm>。
        参数
        image - 8 位、单通道、二值源图像。图像可能会被函数修改。
        lines - 输出直线向量。每条直线表示为一个 2 或 3 元素的向量 \((\rho, \theta)\) 或 \((\rho, \theta, \textrm{votes})\),其中 \(\rho\) 是到坐标原点 \((0,0)\)(图像左上角)的距离,\(\theta\) 是弧度制的直线旋转角度( \(0 \sim\) 垂直线, \(\pi/2 \sim\) 水平线),\(\textrm{votes}\) 是累加器的值。
        rho - 累加器的距离分辨率(以像素为单位)。
        theta - 累加器的角度分辨率(以弧度为单位)。
        threshold - 累加器阈值参数。仅返回获得足够投票( \(>\texttt{threshold}\) )的直线。
        srn - 对于多尺度霍夫变换,它是距离分辨率 rho 的除数。粗略累加器的距离分辨率为 rho,精确累加器的分辨率为 rho/srn。如果 srn=0 且 stn=0,则使用经典霍夫变换。否则,这两个参数都应为正数。
        stn - 对于多尺度霍夫变换,它是距离分辨率 theta 的除数。必须在 0 和 max_theta 之间。必须在 min_theta 和 CV_PI 之间。实际的最大角度可能略小于 max_theta,具体取决于参数 min_theta 和 theta。
      • HoughLines

        public static void HoughLines​(Mat image,
                                      Mat lines,
                                      double rho,
                                      double theta,
                                      int threshold,
                                      double srn)
        使用标准霍夫变换在二值图像中查找直线。该函数实现了用于直线检测的标准或标准多尺度霍夫变换算法。有关霍夫变换的良好解释,请参阅 <https://homepages.inf.ed.ac.uk/rbf/HIPR2/hough.htm>。
        参数
        image - 8 位、单通道、二值源图像。图像可能会被函数修改。
        lines - 输出直线向量。每条直线表示为一个 2 或 3 元素的向量 \((\rho, \theta)\) 或 \((\rho, \theta, \textrm{votes})\),其中 \(\rho\) 是到坐标原点 \((0,0)\)(图像左上角)的距离,\(\theta\) 是弧度制的直线旋转角度( \(0 \sim\) 垂直线, \(\pi/2 \sim\) 水平线),\(\textrm{votes}\) 是累加器的值。
        rho - 累加器的距离分辨率(以像素为单位)。
        theta - 累加器的角度分辨率(以弧度为单位)。
        threshold - 累加器阈值参数。仅返回获得足够投票( \(>\texttt{threshold}\) )的直线。
        srn - 对于多尺度霍夫变换,它是距离分辨率 rho 的除数。粗略累加器的距离分辨率为 rho,精确累加器的分辨率为 rho/srn。如果 srn=0 且 stn=0,则使用经典霍夫变换。否则,这两个参数都应为正数。必须在 0 和 max_theta 之间。必须在 min_theta 和 CV_PI 之间。实际的最大角度可能略小于 max_theta,具体取决于参数 min_theta 和 theta。
      • HoughLines

        public static void HoughLines​(Mat image,
                                      Mat lines,
                                      double rho,
                                      double theta,
                                      int threshold)
        使用标准霍夫变换在二值图像中查找直线。该函数实现了用于直线检测的标准或标准多尺度霍夫变换算法。有关霍夫变换的良好解释,请参阅 <https://homepages.inf.ed.ac.uk/rbf/HIPR2/hough.htm>。
        参数
        image - 8 位、单通道、二值源图像。图像可能会被函数修改。
        lines - 输出直线向量。每条直线表示为一个 2 或 3 元素的向量 \((\rho, \theta)\) 或 \((\rho, \theta, \textrm{votes})\),其中 \(\rho\) 是到坐标原点 \((0,0)\)(图像左上角)的距离,\(\theta\) 是弧度制的直线旋转角度( \(0 \sim\) 垂直线, \(\pi/2 \sim\) 水平线),\(\textrm{votes}\) 是累加器的值。
        rho - 累加器的距离分辨率(以像素为单位)。
        theta - 累加器的角度分辨率(以弧度为单位)。
        threshold - 累加器阈值参数。仅返回获得足够投票( \(>\texttt{threshold}\) )的直线。另请参阅:LineSegmentDetector
      • HoughLinesP

        public static void HoughLinesP​(Mat image,
                                       Mat lines,
                                       double rho,
                                       double theta,
                                       int threshold,
                                       double minLineLength,
                                       double maxLineGap)
        使用概率霍夫变换在二值图像中查找线段。该函数实现了用于直线检测的概率霍夫变换算法,如 CITE: Matas00 中所述。请参阅下面的直线检测示例:INCLUDE: snippets/imgproc_HoughLinesP.cpp 这是函数参数经过调整的示例图片:![image](pics/building.jpg) 而这是上述程序在概率霍夫变换情况下的输出:![image](pics/houghp.png)
        参数
        image - 8 位、单通道、二值源图像。图像可能会被函数修改。
        lines - 输出直线向量。每条直线表示为一个 4 元素向量 \((x_1, y_1, x_2, y_2)\),其中 \((x_1,y_1)\) 和 \((x_2, y_2)\) 是每条检测到的线段的端点。
        rho - 累加器的距离分辨率(以像素为单位)。
        theta - 累加器的角度分辨率(以弧度为单位)。
        threshold - 累加器阈值参数。仅返回获得足够投票( \(>\texttt{threshold}\) )的直线。
        minLineLength - 最小线长度。小于此长度的线段将被拒绝。
        maxLineGap - 连接同一直线上点之间的最大允许间隙。另请参阅:LineSegmentDetector
      • HoughLinesP

        public static void HoughLinesP​(Mat image,
                                       Mat lines,
                                       double rho,
                                       double theta,
                                       int threshold,
                                       double minLineLength)
        使用概率霍夫变换在二值图像中查找线段。该函数实现了用于直线检测的概率霍夫变换算法,如 CITE: Matas00 中所述。请参阅下面的直线检测示例:INCLUDE: snippets/imgproc_HoughLinesP.cpp 这是函数参数经过调整的示例图片:![image](pics/building.jpg) 而这是上述程序在概率霍夫变换情况下的输出:![image](pics/houghp.png)
        参数
        image - 8 位、单通道、二值源图像。图像可能会被函数修改。
        lines - 输出直线向量。每条直线表示为一个 4 元素向量 \((x_1, y_1, x_2, y_2)\),其中 \((x_1,y_1)\) 和 \((x_2, y_2)\) 是每条检测到的线段的端点。
        rho - 累加器的距离分辨率(以像素为单位)。
        theta - 累加器的角度分辨率(以弧度为单位)。
        threshold - 累加器阈值参数。仅返回获得足够投票( \(>\texttt{threshold}\) )的直线。
        minLineLength - 最小线长度。小于此长度的线段将被拒绝。另请参阅:LineSegmentDetector
      • HoughLinesP

        public static void HoughLinesP​(Mat image,
                                       Mat lines,
                                       double rho,
                                       double theta,
                                       int threshold)
        使用概率霍夫变换在二值图像中查找线段。该函数实现了用于直线检测的概率霍夫变换算法,如 CITE: Matas00 中所述。请参阅下面的直线检测示例:INCLUDE: snippets/imgproc_HoughLinesP.cpp 这是函数参数经过调整的示例图片:![image](pics/building.jpg) 而这是上述程序在概率霍夫变换情况下的输出:![image](pics/houghp.png)
        参数
        image - 8 位、单通道、二值源图像。图像可能会被函数修改。
        lines - 输出直线向量。每条直线表示为一个 4 元素向量 \((x_1, y_1, x_2, y_2)\),其中 \((x_1,y_1)\) 和 \((x_2, y_2)\) 是每条检测到的线段的端点。
        rho - 累加器的距离分辨率(以像素为单位)。
        theta - 累加器的角度分辨率(以弧度为单位)。
        threshold - 累加器阈值参数。仅返回获得足够投票( \(>\texttt{threshold}\) )的直线。另请参阅:LineSegmentDetector
      • HoughLinesPointSet

        public static void HoughLinesPointSet​(Mat point,
                                              Mat lines,
                                              int lines_max,
                                              int threshold,
                                              double min_rho,
                                              double max_rho,
                                              double rho_step,
                                              double min_theta,
                                              double max_theta,
                                              double theta_step)
        使用标准霍夫变换在点集中查找直线。该函数使用霍夫变换的修改版在点集中查找直线。INCLUDE: snippets/imgproc_HoughLinesPointSet.cpp
        参数
        point - 输入点向量。每个向量必须编码为 Point 向量 \((x,y)\)。类型必须是 CV_32FC2 或 CV_32SC2。
        lines - 找到的直线的输出向量。每个向量编码为 vector<Vec3d> \((votes, rho, theta)\)。'votes' 值越大,霍夫直线的可靠性越高。
        lines_max - 霍夫直线最大计数。
        threshold - 累加器阈值参数。仅返回获得足够投票( \(>\texttt{threshold}\) )的直线。
        min_rho - 累加器的最小 \(\rho\) 值(注意:\(\rho\) 可以是负数。绝对值 \(|\rho|\) 是直线到原点的距离)。
        max_rho - 累加器的最大 \(\rho\) 值。
        rho_step - 累加器的距离分辨率。
        min_theta - 累加器的最小角度值(以弧度为单位)。
        max_theta - 累加器角度值的上限(以弧度为单位)。实际最大角度可能略小于 max_theta,具体取决于参数 min_theta 和 theta_step。
        theta_step - 累加器的角度分辨率(以弧度为单位)。
      • HoughCircles

        public static void HoughCircles​(Mat image,
                                        Mat circles,
                                        int method,
                                        double dp,
                                        double minDist,
                                        double param1,
                                        double param2,
                                        int minRadius,
                                        int maxRadius)
        使用霍夫变换在灰度图像中查找圆。该函数使用霍夫变换的修改版在灰度图像中查找圆。示例:: INCLUDE: snippets/imgproc_HoughLinesCircles.cpp 注意:通常函数能很好地检测到圆心。然而,它可能无法找到正确的半径。如果您知道半径范围(minRadius 和 maxRadius),则可以通过指定半径范围来辅助函数。另外,在 #HOUGH_GRADIENT 方法的情况下,您可以将 maxRadius 设置为负数,以仅返回圆心而不进行半径搜索,然后使用附加过程查找正确半径。平滑图像也有帮助,除非它已经很柔和。例如,使用 7x7 内核和 1.5x1.5 sigma 的 GaussianBlur() 或类似的模糊处理可能有助于提高性能。
        参数
        image - 8 位、单通道、灰度输入图像。
        circles - 找到的圆的输出向量。每个向量编码为一个 3 或 4 元素的浮点向量 \((x, y, radius)\) 或 \((x, y, radius, votes)\)。
        method - 检测方法,请参阅 #HoughModes。可用方法包括 #HOUGH_GRADIENT 和 #HOUGH_GRADIENT_ALT。
        dp - 累加器分辨率与图像分辨率的倒数。例如,如果 dp=1,累加器具有与输入图像相同的分辨率。如果 dp=2,累加器的宽度和高度是输入图像的一半。对于 #HOUGH_GRADIENT_ALT,推荐值是 dp=1.5,除非需要检测一些非常小的圆。
        minDist - 检测到的圆心之间的最小距离。如果参数太小,可能会在真实圆旁边错误地检测到多个相邻圆。如果参数太大,可能会漏掉一些圆。
        param1 - 第一种方法特定的参数。在 #HOUGH_GRADIENT 和 #HOUGH_GRADIENT_ALT 的情况下,它是传递给 Canny 边缘检测器的两个阈值中较高的一个(较低的阈值是其一半)。请注意,#HOUGH_GRADIENT_ALT 使用 #Scharr 算法来计算图像导数,因此阈值通常应较高,例如 300,或者对于正常曝光和对比度强的图像。
        param2 - 第二种方法特定的参数。在 #HOUGH_GRADIENT 的情况下,它是检测阶段圆心处的累加器阈值。该值越小,可能错误检测到的圆越多。对应于较大累加器值的圆将首先返回。在 #HOUGH_GRADIENT_ALT 算法的情况下,这是圆的“完美度”度量。它越接近 1,算法选择的圆的形状越好。在大多数情况下,0.9 应该没问题。如果您想更好地检测小圆,可以将其降低到 0.85、0.8 或更低。但那时也请尝试限制搜索范围 [minRadius, maxRadius] 以避免许多误报的圆。
        minRadius - 最小圆半径。
        maxRadius - 最大圆半径。如果 <= 0,则使用最大图像尺寸。如果 < 0,#HOUGH_GRADIENT 在不搜索半径的情况下返回圆心。#HOUGH_GRADIENT_ALT 始终计算圆半径。另请参阅:fitEllipse、minEnclosingCircle
      • HoughCircles

        public static void HoughCircles​(Mat image,
                                        Mat circles,
                                        int method,
                                        double dp,
                                        double minDist,
                                        double param1,
                                        double param2,
                                        int minRadius)
        使用霍夫变换在灰度图像中查找圆。该函数使用霍夫变换的修改版在灰度图像中查找圆。示例:: INCLUDE: snippets/imgproc_HoughLinesCircles.cpp 注意:通常函数能很好地检测到圆心。然而,它可能无法找到正确的半径。如果您知道半径范围(minRadius 和 maxRadius),则可以通过指定半径范围来辅助函数。另外,在 #HOUGH_GRADIENT 方法的情况下,您可以将 maxRadius 设置为负数,以仅返回圆心而不进行半径搜索,然后使用附加过程查找正确半径。平滑图像也有帮助,除非它已经很柔和。例如,使用 7x7 内核和 1.5x1.5 sigma 的 GaussianBlur() 或类似的模糊处理可能有助于提高性能。
        参数
        image - 8 位、单通道、灰度输入图像。
        circles - 找到的圆的输出向量。每个向量编码为一个 3 或 4 元素的浮点向量 \((x, y, radius)\) 或 \((x, y, radius, votes)\)。
        method - 检测方法,请参阅 #HoughModes。可用方法包括 #HOUGH_GRADIENT 和 #HOUGH_GRADIENT_ALT。
        dp - 累加器分辨率与图像分辨率的倒数。例如,如果 dp=1,累加器具有与输入图像相同的分辨率。如果 dp=2,累加器的宽度和高度是输入图像的一半。对于 #HOUGH_GRADIENT_ALT,推荐值是 dp=1.5,除非需要检测一些非常小的圆。
        minDist - 检测到的圆心之间的最小距离。如果参数太小,可能会在真实圆旁边错误地检测到多个相邻圆。如果参数太大,可能会漏掉一些圆。
        param1 - 第一种方法特定的参数。在 #HOUGH_GRADIENT 和 #HOUGH_GRADIENT_ALT 的情况下,它是传递给 Canny 边缘检测器的两个阈值中较高的一个(较低的阈值是其一半)。请注意,#HOUGH_GRADIENT_ALT 使用 #Scharr 算法来计算图像导数,因此阈值通常应较高,例如 300,或者对于正常曝光和对比度强的图像。
        param2 - 第二种方法特定的参数。在 #HOUGH_GRADIENT 的情况下,它是检测阶段圆心处的累加器阈值。该值越小,可能错误检测到的圆越多。对应于较大累加器值的圆将首先返回。在 #HOUGH_GRADIENT_ALT 算法的情况下,这是圆的“完美度”度量。它越接近 1,算法选择的圆的形状越好。在大多数情况下,0.9 应该没问题。如果您想更好地检测小圆,可以将其降低到 0.85、0.8 或更低。但那时也请尝试限制搜索范围 [minRadius, maxRadius] 以避免许多误报的圆。
        minRadius - 最小圆半径。另请参阅:fitEllipse、minEnclosingCircle
      • HoughCircles

        public static void HoughCircles​(Mat image,
                                        Mat circles,
                                        int method,
                                        double dp,
                                        double minDist,
                                        double param1,
                                        double param2)
        使用霍夫变换在灰度图像中查找圆。该函数使用霍夫变换的修改版在灰度图像中查找圆。示例:: INCLUDE: snippets/imgproc_HoughLinesCircles.cpp 注意:通常函数能很好地检测到圆心。然而,它可能无法找到正确的半径。如果您知道半径范围(minRadius 和 maxRadius),则可以通过指定半径范围来辅助函数。另外,在 #HOUGH_GRADIENT 方法的情况下,您可以将 maxRadius 设置为负数,以仅返回圆心而不进行半径搜索,然后使用附加过程查找正确半径。平滑图像也有帮助,除非它已经很柔和。例如,使用 7x7 内核和 1.5x1.5 sigma 的 GaussianBlur() 或类似的模糊处理可能有助于提高性能。
        参数
        image - 8 位、单通道、灰度输入图像。
        circles - 找到的圆的输出向量。每个向量编码为一个 3 或 4 元素的浮点向量 \((x, y, radius)\) 或 \((x, y, radius, votes)\)。
        method - 检测方法,请参阅 #HoughModes。可用方法包括 #HOUGH_GRADIENT 和 #HOUGH_GRADIENT_ALT。
        dp - 累加器分辨率与图像分辨率的倒数。例如,如果 dp=1,累加器具有与输入图像相同的分辨率。如果 dp=2,累加器的宽度和高度是输入图像的一半。对于 #HOUGH_GRADIENT_ALT,推荐值是 dp=1.5,除非需要检测一些非常小的圆。
        minDist - 检测到的圆心之间的最小距离。如果参数太小,可能会在真实圆旁边错误地检测到多个相邻圆。如果参数太大,可能会漏掉一些圆。
        param1 - 第一种方法特定的参数。在 #HOUGH_GRADIENT 和 #HOUGH_GRADIENT_ALT 的情况下,它是传递给 Canny 边缘检测器的两个阈值中较高的一个(较低的阈值是其一半)。请注意,#HOUGH_GRADIENT_ALT 使用 #Scharr 算法来计算图像导数,因此阈值通常应较高,例如 300,或者对于正常曝光和对比度强的图像。
        param2 - 第二种方法特定的参数。在 #HOUGH_GRADIENT 的情况下,它是检测阶段圆心处的累加器阈值。该值越小,可能错误检测到的圆越多。对应于较大累加器值的圆将首先返回。在 #HOUGH_GRADIENT_ALT 算法的情况下,这是圆的“完美度”度量。它越接近 1,算法选择的圆的形状越好。在大多数情况下,0.9 应该没问题。如果您想更好地检测小圆,可以将其降低到 0.85、0.8 或更低。但那时也请尝试限制搜索范围 [minRadius, maxRadius] 以避免许多误报的圆。另请参阅:fitEllipse、minEnclosingCircle
      • HoughCircles

        public static void HoughCircles​(Mat image,
                                        Mat circles,
                                        int method,
                                        double dp,
                                        double minDist,
                                        double param1)
        使用霍夫变换在灰度图像中查找圆。该函数使用霍夫变换的修改版在灰度图像中查找圆。示例:: INCLUDE: snippets/imgproc_HoughLinesCircles.cpp 注意:通常函数能很好地检测到圆心。然而,它可能无法找到正确的半径。如果您知道半径范围(minRadius 和 maxRadius),则可以通过指定半径范围来辅助函数。另外,在 #HOUGH_GRADIENT 方法的情况下,您可以将 maxRadius 设置为负数,以仅返回圆心而不进行半径搜索,然后使用附加过程查找正确半径。平滑图像也有帮助,除非它已经很柔和。例如,使用 7x7 内核和 1.5x1.5 sigma 的 GaussianBlur() 或类似的模糊处理可能有助于提高性能。
        参数
        image - 8 位、单通道、灰度输入图像。
        circles - 找到的圆的输出向量。每个向量编码为一个 3 或 4 元素的浮点向量 \((x, y, radius)\) 或 \((x, y, radius, votes)\)。
        method - 检测方法,请参阅 #HoughModes。可用方法包括 #HOUGH_GRADIENT 和 #HOUGH_GRADIENT_ALT。
        dp - 累加器分辨率与图像分辨率的倒数。例如,如果 dp=1,累加器具有与输入图像相同的分辨率。如果 dp=2,累加器的宽度和高度是输入图像的一半。对于 #HOUGH_GRADIENT_ALT,推荐值是 dp=1.5,除非需要检测一些非常小的圆。
        minDist - 检测到的圆心之间的最小距离。如果参数太小,可能会在真实圆旁边错误地检测到多个相邻圆。如果参数太大,可能会漏掉一些圆。
        param1 - 第一种方法特定的参数。在 #HOUGH_GRADIENT 和 #HOUGH_GRADIENT_ALT 的情况下,它是传递给 Canny 边缘检测器的两个阈值中较高的一个(较低的阈值是其一半)。请注意,#HOUGH_GRADIENT_ALT 使用 #Scharr 算法来计算图像导数,因此阈值通常应较高,例如 300,或者对于正常曝光和对比度强的图像。另请参阅:fitEllipse、minEnclosingCircle
      • HoughCircles

        public static void HoughCircles​(Mat image,
                                        Mat circles,
                                        int method,
                                        double dp,
                                        double minDist)
        使用霍夫变换在灰度图像中查找圆。该函数使用霍夫变换的修改版在灰度图像中查找圆。示例:: INCLUDE: snippets/imgproc_HoughLinesCircles.cpp 注意:通常函数能很好地检测到圆心。然而,它可能无法找到正确的半径。如果您知道半径范围(minRadius 和 maxRadius),则可以通过指定半径范围来辅助函数。另外,在 #HOUGH_GRADIENT 方法的情况下,您可以将 maxRadius 设置为负数,以仅返回圆心而不进行半径搜索,然后使用附加过程查找正确半径。平滑图像也有帮助,除非它已经很柔和。例如,使用 7x7 内核和 1.5x1.5 sigma 的 GaussianBlur() 或类似的模糊处理可能有助于提高性能。
        参数
        image - 8 位、单通道、灰度输入图像。
        circles - 找到的圆的输出向量。每个向量编码为一个 3 或 4 元素的浮点向量 \((x, y, radius)\) 或 \((x, y, radius, votes)\)。
        method - 检测方法,请参阅 #HoughModes。可用方法包括 #HOUGH_GRADIENT 和 #HOUGH_GRADIENT_ALT。
        dp - 累加器分辨率与图像分辨率的倒数。例如,如果 dp=1,累加器具有与输入图像相同的分辨率。如果 dp=2,累加器的宽度和高度是输入图像的一半。对于 #HOUGH_GRADIENT_ALT,推荐值是 dp=1.5,除非需要检测一些非常小的圆。
        minDist - 检测到的圆心之间的最小距离。如果参数太小,可能会在真实圆旁边错误地检测到多个相邻圆。如果参数太大,可能会漏掉一些圆。另请参阅:fitEllipse、minEnclosingCircle
      • erode

        public static void erode​(Mat src,
                                 Mat dst,
                                 Mat kernel,
                                 Point anchor,
                                 int iterations,
                                 int borderType,
                                 Scalar borderValue)
        使用特定的结构元素侵蚀图像。该函数使用指定的结构元素侵蚀源图像,该结构元素确定取最小值的像素邻域的形状:\(\texttt{dst} (x,y) = \min _{(x',y'): \, \texttt{element} (x',y') \ne0 } \texttt{src} (x+x',y+y')\) 该函数支持原地模式。侵蚀可以应用多次(iterations)。对于多通道图像,每个通道独立处理。
        参数
        src - 输入图像;通道数可以是任意的,但深度应为 CV_8U、CV_16U、CV_16S、CV_32F 或 CV_64F 之一。
        dst - 与 src 相同大小和类型的输出图像。 (dst - output image of the same size and type as src.)
        kernel - 用于侵蚀的结构元素;如果 element=Mat(),则使用 3x3 的矩形结构元素。可以使用 #getStructuringElement 创建核。
        anchor - 元素内的锚点位置;默认值 (-1, -1) 表示锚点位于元素中心。
        iterations - 应用侵蚀的次数。
        borderType - 像素外插方法,请参阅 #BorderTypes。 #BORDER_WRAP 不受支持。 (borderType - pixel extrapolation method, see #BorderTypes. #BORDER_WRAP is not supported.)
        borderValue - 常量边界情况下的边界值。另请参阅:dilate、morphologyEx、getStructuringElement
      • erode

        public static void erode​(Mat src,
                                 Mat dst,
                                 Mat kernel,
                                 Point anchor,
                                 int iterations,
                                 int borderType)
        使用特定的结构元素侵蚀图像。该函数使用指定的结构元素侵蚀源图像,该结构元素确定取最小值的像素邻域的形状:\(\texttt{dst} (x,y) = \min _{(x',y'): \, \texttt{element} (x',y') \ne0 } \texttt{src} (x+x',y+y')\) 该函数支持原地模式。侵蚀可以应用多次(iterations)。对于多通道图像,每个通道独立处理。
        参数
        src - 输入图像;通道数可以是任意的,但深度应为 CV_8U、CV_16U、CV_16S、CV_32F 或 CV_64F 之一。
        dst - 与 src 相同大小和类型的输出图像。 (dst - output image of the same size and type as src.)
        kernel - 用于侵蚀的结构元素;如果 element=Mat(),则使用 3x3 的矩形结构元素。可以使用 #getStructuringElement 创建核。
        anchor - 元素内的锚点位置;默认值 (-1, -1) 表示锚点位于元素中心。
        iterations - 应用侵蚀的次数。
        borderType - 像素外插方法,请参阅 #BorderTypes。不支持 #BORDER_WRAP。另请参阅:dilate、morphologyEx、getStructuringElement
      • erode

        public static void erode​(Mat src,
                                 Mat dst,
                                 Mat kernel,
                                 Point anchor,
                                 int iterations)
        使用特定的结构元素侵蚀图像。该函数使用指定的结构元素侵蚀源图像,该结构元素确定取最小值的像素邻域的形状:\(\texttt{dst} (x,y) = \min _{(x',y'): \, \texttt{element} (x',y') \ne0 } \texttt{src} (x+x',y+y')\) 该函数支持原地模式。侵蚀可以应用多次(iterations)。对于多通道图像,每个通道独立处理。
        参数
        src - 输入图像;通道数可以是任意的,但深度应为 CV_8U、CV_16U、CV_16S、CV_32F 或 CV_64F 之一。
        dst - 与 src 相同大小和类型的输出图像。 (dst - output image of the same size and type as src.)
        kernel - 用于侵蚀的结构元素;如果 element=Mat(),则使用 3x3 的矩形结构元素。可以使用 #getStructuringElement 创建核。
        anchor - 元素内的锚点位置;默认值 (-1, -1) 表示锚点位于元素中心。
        iterations - 应用侵蚀的次数。另请参阅:dilate、morphologyEx、getStructuringElement
      • erode

        public static void erode​(Mat src,
                                 Mat dst,
                                 Mat kernel,
                                 Point anchor)
        使用特定的结构元素侵蚀图像。该函数使用指定的结构元素侵蚀源图像,该结构元素确定取最小值的像素邻域的形状:\(\texttt{dst} (x,y) = \min _{(x',y'): \, \texttt{element} (x',y') \ne0 } \texttt{src} (x+x',y+y')\) 该函数支持原地模式。侵蚀可以应用多次(iterations)。对于多通道图像,每个通道独立处理。
        参数
        src - 输入图像;通道数可以是任意的,但深度应为 CV_8U、CV_16U、CV_16S、CV_32F 或 CV_64F 之一。
        dst - 与 src 相同大小和类型的输出图像。 (dst - output image of the same size and type as src.)
        kernel - 用于侵蚀的结构元素;如果 element=Mat(),则使用 3x3 的矩形结构元素。可以使用 #getStructuringElement 创建核。
        anchor - 元素内的锚点位置;默认值 (-1, -1) 表示锚点位于元素中心。另请参阅:dilate、morphologyEx、getStructuringElement
      • erode

        public static void erode​(Mat src,
                                 Mat dst,
                                 Mat kernel)
        使用特定的结构元素侵蚀图像。该函数使用指定的结构元素侵蚀源图像,该结构元素确定取最小值的像素邻域的形状:\(\texttt{dst} (x,y) = \min _{(x',y'): \, \texttt{element} (x',y') \ne0 } \texttt{src} (x+x',y+y')\) 该函数支持原地模式。侵蚀可以应用多次(iterations)。对于多通道图像,每个通道独立处理。
        参数
        src - 输入图像;通道数可以是任意的,但深度应为 CV_8U、CV_16U、CV_16S、CV_32F 或 CV_64F 之一。
        dst - 与 src 相同大小和类型的输出图像。 (dst - output image of the same size and type as src.)
        kernel - 用于侵蚀的结构元素;如果 element=Mat(),则使用 3x3 的矩形结构元素。可以使用 #getStructuringElement 创建核。另请参阅:dilate、morphologyEx、getStructuringElement
      • dilate

        public static void dilate​(Mat src,
                                  Mat dst,
                                  Mat kernel,
                                  Point anchor,
                                  int iterations,
                                  int borderType,
                                  Scalar borderValue)
        使用特定的结构元素扩张图像。该函数使用指定的结构元素扩张源图像,该结构元素确定取最大值的像素邻域的形状:\(\texttt{dst} (x,y) = \max _{(x',y'): \, \texttt{element} (x',y') \ne0 } \texttt{src} (x+x',y+y')\) 该函数支持原地模式。扩张可以应用多次(iterations)。对于多通道图像,每个通道独立处理。
        参数
        src - 输入图像;通道数可以是任意的,但深度应为 CV_8U、CV_16U、CV_16S、CV_32F 或 CV_64F 之一。
        dst - 与 src 相同大小和类型的输出图像。 (dst - output image of the same size and type as src.)
        kernel - 用于扩张的结构元素;如果 element=Mat(),则使用 3x3 的矩形结构元素。可以使用 #getStructuringElement 创建核。
        anchor - 元素内的锚点位置;默认值 (-1, -1) 表示锚点位于元素中心。
        iterations - 应用扩张的次数。
        borderType - 像素外插方法,请参阅 #BorderTypes。不支持 #BORDER_WRAP。
        borderValue - 常量边界情况下的边界值。另请参阅:erode、morphologyEx、getStructuringElement
      • dilate

        public static void dilate​(Mat src,
                                  Mat dst,
                                  Mat kernel,
                                  Point anchor,
                                  int iterations,
                                  int borderType)
        使用特定的结构元素扩张图像。该函数使用指定的结构元素扩张源图像,该结构元素确定取最大值的像素邻域的形状:\(\texttt{dst} (x,y) = \max _{(x',y'): \, \texttt{element} (x',y') \ne0 } \texttt{src} (x+x',y+y')\) 该函数支持原地模式。扩张可以应用多次(iterations)。对于多通道图像,每个通道独立处理。
        参数
        src - 输入图像;通道数可以是任意的,但深度应为 CV_8U、CV_16U、CV_16S、CV_32F 或 CV_64F 之一。
        dst - 与 src 相同大小和类型的输出图像。 (dst - output image of the same size and type as src.)
        kernel - 用于扩张的结构元素;如果 element=Mat(),则使用 3x3 的矩形结构元素。可以使用 #getStructuringElement 创建核。
        anchor - 元素内的锚点位置;默认值 (-1, -1) 表示锚点位于元素中心。
        iterations - 应用扩张的次数。
        borderType - 像素外插方法,请参阅 #BorderTypes。不支持 #BORDER_WRAP。另请参阅:erode、morphologyEx、getStructuringElement
      • dilate

        public static void dilate​(Mat src,
                                  Mat dst,
                                  Mat kernel,
                                  Point anchor,
                                  int iterations)
        使用特定的结构元素扩张图像。该函数使用指定的结构元素扩张源图像,该结构元素确定取最大值的像素邻域的形状:\(\texttt{dst} (x,y) = \max _{(x',y'): \, \texttt{element} (x',y') \ne0 } \texttt{src} (x+x',y+y')\) 该函数支持原地模式。扩张可以应用多次(iterations)。对于多通道图像,每个通道独立处理。
        参数
        src - 输入图像;通道数可以是任意的,但深度应为 CV_8U、CV_16U、CV_16S、CV_32F 或 CV_64F 之一。
        dst - 与 src 相同大小和类型的输出图像。 (dst - output image of the same size and type as src.)
        kernel - 用于扩张的结构元素;如果 element=Mat(),则使用 3x3 的矩形结构元素。可以使用 #getStructuringElement 创建核。
        anchor - 元素内的锚点位置;默认值 (-1, -1) 表示锚点位于元素中心。
        iterations - 应用扩张的次数。另请参阅:erode、morphologyEx、getStructuringElement
      • dilate

        public static void dilate​(Mat src,
                                  Mat dst,
                                  Mat kernel,
                                  Point anchor)
        使用特定的结构元素扩张图像。该函数使用指定的结构元素扩张源图像,该结构元素确定取最大值的像素邻域的形状:\(\texttt{dst} (x,y) = \max _{(x',y'): \, \texttt{element} (x',y') \ne0 } \texttt{src} (x+x',y+y')\) 该函数支持原地模式。扩张可以应用多次(iterations)。对于多通道图像,每个通道独立处理。
        参数
        src - 输入图像;通道数可以是任意的,但深度应为 CV_8U、CV_16U、CV_16S、CV_32F 或 CV_64F 之一。
        dst - 与 src 相同大小和类型的输出图像。 (dst - output image of the same size and type as src.)
        kernel - 用于扩张的结构元素;如果 element=Mat(),则使用 3x3 的矩形结构元素。可以使用 #getStructuringElement 创建核。
        anchor - 元素内的锚点位置;默认值 (-1, -1) 表示锚点位于元素中心。另请参阅:erode、morphologyEx、getStructuringElement
      • dilate

        public static void dilate​(Mat src,
                                  Mat dst,
                                  Mat kernel)
        使用特定的结构元素扩张图像。该函数使用指定的结构元素扩张源图像,该结构元素确定取最大值的像素邻域的形状:\(\texttt{dst} (x,y) = \max _{(x',y'): \, \texttt{element} (x',y') \ne0 } \texttt{src} (x+x',y+y')\) 该函数支持原地模式。扩张可以应用多次(iterations)。对于多通道图像,每个通道独立处理。
        参数
        src - 输入图像;通道数可以是任意的,但深度应为 CV_8U、CV_16U、CV_16S、CV_32F 或 CV_64F 之一。
        dst - 与 src 相同大小和类型的输出图像。 (dst - output image of the same size and type as src.)
        kernel - 用于扩张的结构元素;如果 element=Mat(),则使用 3x3 的矩形结构元素。可以使用 #getStructuringElement 创建核。另请参阅:erode、morphologyEx、getStructuringElement
      • morphologyEx

        public static void morphologyEx​(Mat src,
                                        Mat dst,
                                        int op,
                                        Mat kernel,
                                        Point anchor,
                                        int iterations,
                                        int borderType,
                                        Scalar borderValue)
        执行高级形态学变换。cv::morphologyEx 函数可以使用侵蚀和扩张作为基本操作来执行高级形态学变换。任何操作都可以原地进行。对于多通道图像,每个通道独立处理。
        参数
        src - 源图像。通道数可以是任意的。深度应为 CV_8U、CV_16U、CV_16S、CV_32F 或 CV_64F 之一。
        dst - 与源图像大小和类型相同的目标图像。
        op - 形态学操作的类型,请参阅 #MorphTypes
        kernel - 结构元素。可以使用 #getStructuringElement 创建。
        anchor - 核内的锚点位置。负值表示锚点位于核中心。
        iterations - 应用侵蚀和扩张的次数。
        borderType - 像素外插方法,请参阅 #BorderTypes。不支持 #BORDER_WRAP。
        borderValue - 常量边界情况下的边界值。默认值具有特殊含义。另请参阅:dilate、erode、getStructuringElement 注意: 迭代次数是指应用侵蚀或扩张操作的次数。例如,两次迭代的开运算(#MORPH_OPEN)等效于连续应用:erode -> erode -> dilate -> dilate(而不是 erode -> dilate -> erode -> dilate)。
      • morphologyEx

        public static void morphologyEx​(Mat src,
                                        Mat dst,
                                        int op,
                                        Mat kernel,
                                        Point anchor,
                                        int iterations,
                                        int borderType)
        执行高级形态学变换。cv::morphologyEx 函数可以使用侵蚀和扩张作为基本操作来执行高级形态学变换。任何操作都可以原地进行。对于多通道图像,每个通道独立处理。
        参数
        src - 源图像。通道数可以是任意的。深度应为 CV_8U、CV_16U、CV_16S、CV_32F 或 CV_64F 之一。
        dst - 与源图像大小和类型相同的目标图像。
        op - 形态学操作的类型,请参阅 #MorphTypes
        kernel - 结构元素。可以使用 #getStructuringElement 创建。
        anchor - 核内的锚点位置。负值表示锚点位于核中心。
        iterations - 应用侵蚀和扩张的次数。
        borderType - 像素外插方法,请参阅 #BorderTypes。不支持 #BORDER_WRAP。另请参阅:dilate、erode、getStructuringElement 注意: 迭代次数是指应用侵蚀或扩张操作的次数。例如,两次迭代的开运算(#MORPH_OPEN)等效于连续应用:erode -> erode -> dilate -> dilate(而不是 erode -> dilate -> erode -> dilate)。
      • morphologyEx

        public static void morphologyEx​(Mat src,
                                        Mat dst,
                                        int op,
                                        Mat kernel,
                                        Point anchor,
                                        int iterations)
        执行高级形态学变换。cv::morphologyEx 函数可以使用侵蚀和扩张作为基本操作来执行高级形态学变换。任何操作都可以原地进行。对于多通道图像,每个通道独立处理。
        参数
        src - 源图像。通道数可以是任意的。深度应为 CV_8U、CV_16U、CV_16S、CV_32F 或 CV_64F 之一。
        dst - 与源图像大小和类型相同的目标图像。
        op - 形态学操作的类型,请参阅 #MorphTypes
        kernel - 结构元素。可以使用 #getStructuringElement 创建。
        anchor - 核内的锚点位置。负值表示锚点位于核中心。
        iterations - 应用侵蚀和扩张的次数。另请参阅:dilate、erode、getStructuringElement 注意: 迭代次数是指应用侵蚀或扩张操作的次数。例如,两次迭代的开运算(#MORPH_OPEN)等效于连续应用:erode -> erode -> dilate -> dilate(而不是 erode -> dilate -> erode -> dilate)。
      • morphologyEx

        public static void morphologyEx​(Mat src,
                                        Mat dst,
                                        int op,
                                        Mat kernel,
                                        Point anchor)
        执行高级形态学变换。cv::morphologyEx 函数可以使用侵蚀和扩张作为基本操作来执行高级形态学变换。任何操作都可以原地进行。对于多通道图像,每个通道独立处理。
        参数
        src - 源图像。通道数可以是任意的。深度应为 CV_8U、CV_16U、CV_16S、CV_32F 或 CV_64F 之一。
        dst - 与源图像大小和类型相同的目标图像。
        op - 形态学操作的类型,请参阅 #MorphTypes
        kernel - 结构元素。可以使用 #getStructuringElement 创建。
        anchor - 核内的锚点位置。负值表示锚点位于核中心。另请参阅:dilate、erode、getStructuringElement 注意: 迭代次数是指应用侵蚀或扩张操作的次数。例如,两次迭代的开运算(#MORPH_OPEN)等效于连续应用:erode -> erode -> dilate -> dilate(而不是 erode -> dilate -> erode -> dilate)。
      • morphologyEx

        public static void morphologyEx​(Mat src,
                                        Mat dst,
                                        int op,
                                        Mat kernel)
        执行高级形态学变换。cv::morphologyEx 函数可以使用侵蚀和扩张作为基本操作来执行高级形态学变换。任何操作都可以原地进行。对于多通道图像,每个通道独立处理。
        参数
        src - 源图像。通道数可以是任意的。深度应为 CV_8U、CV_16U、CV_16S、CV_32F 或 CV_64F 之一。
        dst - 与源图像大小和类型相同的目标图像。
        op - 形态学操作的类型,请参阅 #MorphTypes
        kernel - 结构元素。可以使用 #getStructuringElement 创建。另请参阅:dilate、erode、getStructuringElement 注意: 迭代次数是指应用侵蚀或扩张操作的次数。例如,两次迭代的开运算(#MORPH_OPEN)等效于连续应用:erode -> erode -> dilate -> dilate(而不是 erode -> dilate -> erode -> dilate)。
      • resize

        public static void resize​(Mat src,
                                  Mat dst,
                                  Size dsize,
                                  double fx,
                                  double fy,
                                  int interpolation)
        缩放图像。resize 函数将源图像 src 缩放到指定大小或从指定大小放大。请注意,初始的 dst 类型或大小不会被考虑。相反,大小和类型是从 srcdsizefxfy 中派生的。如果您想将 src 缩放到适合预先创建的 dst,您可以这样调用该函数: // explicitly specify dsize=dst.size(); fx and fy will be computed from that. resize(src, dst, dst.size(), 0, 0, interpolation); 如果想将图像在每个方向上缩小一半,可以这样调用该函数: // specify fx and fy and let the function compute the destination image size. resize(src, dst, Size(), 0.5, 0.5, interpolation); 要缩小图像,通常使用 #INTER_AREA 插值效果最好,而要放大图像,通常使用 #INTER_CUBIC(慢)或 #INTER_LINEAR(更快但仍然看起来不错)效果最好。
        参数
        src - 输入图像。
        dst - 输出图像;它的大小为 dsize(如果非零),或者大小由 src.size()、fx 和 fy 计算得出;dst 的类型与 src 相同。
        dsize - 输出图像大小;如果它等于零(Python 中的 None),则计算为:\(\texttt{dsize = Size(round(fx*src.cols), round(fy*src.rows))}\) dsize 或 fx 和 fy 必须至少有一个非零。
        fx - 水平轴上的缩放因子;当它等于 0 时,它计算为 \(\texttt{(double)dsize.width/src.cols}\)
        fy - 垂直轴上的缩放因子;当它等于 0 时,它计算为 \(\texttt{(double)dsize.height/src.rows}\)
        interpolation - 插值方法,请参阅 #InterpolationFlags 另请参阅:warpAffine、warpPerspective、remap
      • resize

        public static void resize​(Mat src,
                                  Mat dst,
                                  Size dsize,
                                  double fx,
                                  double fy)
        缩放图像。resize 函数将源图像 src 缩放到指定大小或从指定大小放大。请注意,初始的 dst 类型或大小不会被考虑。相反,大小和类型是从 srcdsizefxfy 中派生的。如果您想将 src 缩放到适合预先创建的 dst,您可以这样调用该函数: // explicitly specify dsize=dst.size(); fx and fy will be computed from that. resize(src, dst, dst.size(), 0, 0, interpolation); 如果想将图像在每个方向上缩小一半,可以这样调用该函数: // specify fx and fy and let the function compute the destination image size. resize(src, dst, Size(), 0.5, 0.5, interpolation); 要缩小图像,通常使用 #INTER_AREA 插值效果最好,而要放大图像,通常使用 #INTER_CUBIC(慢)或 #INTER_LINEAR(更快但仍然看起来不错)效果最好。
        参数
        src - 输入图像。
        dst - 输出图像;它的大小为 dsize(如果非零),或者大小由 src.size()、fx 和 fy 计算得出;dst 的类型与 src 相同。
        dsize - 输出图像大小;如果它等于零(Python 中的 None),则计算为:\(\texttt{dsize = Size(round(fx*src.cols), round(fy*src.rows))}\) dsize 或 fx 和 fy 必须至少有一个非零。
        fx - 水平轴上的缩放因子;当它等于 0 时,它计算为 \(\texttt{(double)dsize.width/src.cols}\)
        fy - 垂直轴上的缩放因子;当它等于 0 时,它计算为 \(\texttt{(double)dsize.height/src.rows}\) 另请参阅:warpAffine、warpPerspective、remap
      • resize

        public static void resize​(Mat src,
                                  Mat dst,
                                  Size dsize,
                                  double fx)
        缩放图像。resize 函数将源图像 src 缩放到指定大小或从指定大小放大。请注意,初始的 dst 类型或大小不会被考虑。相反,大小和类型是从 srcdsizefxfy 中派生的。如果您想将 src 缩放到适合预先创建的 dst,您可以这样调用该函数: // explicitly specify dsize=dst.size(); fx and fy will be computed from that. resize(src, dst, dst.size(), 0, 0, interpolation); 如果想将图像在每个方向上缩小一半,可以这样调用该函数: // specify fx and fy and let the function compute the destination image size. resize(src, dst, Size(), 0.5, 0.5, interpolation); 要缩小图像,通常使用 #INTER_AREA 插值效果最好,而要放大图像,通常使用 #INTER_CUBIC(慢)或 #INTER_LINEAR(更快但仍然看起来不错)效果最好。
        参数
        src - 输入图像。
        dst - 输出图像;它的大小为 dsize(如果非零),或者大小由 src.size()、fx 和 fy 计算得出;dst 的类型与 src 相同。
        dsize - 输出图像大小;如果它等于零(Python 中的 None),则计算为:\(\texttt{dsize = Size(round(fx*src.cols), round(fy*src.rows))}\) dsize 或 fx 和 fy 必须至少有一个非零。
        fx - 水平轴上的缩放因子;当它等于 0 时,它计算为 \(\texttt{(double)dsize.width/src.cols}\) 另请参阅:warpAffine、warpPerspective、remap
      • resize

        public static void resize​(Mat src,
                                  Mat dst,
                                  Size dsize)
        缩放图像。resize 函数将源图像 src 缩放到指定大小或从指定大小放大。请注意,初始的 dst 类型或大小不会被考虑。相反,大小和类型是从 srcdsizefxfy 中派生的。如果您想将 src 缩放到适合预先创建的 dst,您可以这样调用该函数: // explicitly specify dsize=dst.size(); fx and fy will be computed from that. resize(src, dst, dst.size(), 0, 0, interpolation); 如果想将图像在每个方向上缩小一半,可以这样调用该函数: // specify fx and fy and let the function compute the destination image size. resize(src, dst, Size(), 0.5, 0.5, interpolation); 要缩小图像,通常使用 #INTER_AREA 插值效果最好,而要放大图像,通常使用 #INTER_CUBIC(慢)或 #INTER_LINEAR(更快但仍然看起来不错)效果最好。
        参数
        src - 输入图像。
        dst - 输出图像;它的大小为 dsize(如果非零),或者大小由 src.size()、fx 和 fy 计算得出;dst 的类型与 src 相同。
        dsize - 输出图像大小;如果它等于零(Python 中的 None),则计算为:\(\texttt{dsize = Size(round(fx*src.cols), round(fy*src.rows))}\) dsize 或 fx 和 fy 必须至少有一个非零。另请参阅:warpAffine、warpPerspective、remap
      • warpAffine

        public static void warpAffine​(Mat src,
                                      Mat dst,
                                      Mat M,
                                      Size dsize,
                                      int flags,
                                      int borderMode,
                                      Scalar borderValue)
        将仿射变换应用于图像。warpAffine 函数使用指定的矩阵变换源图像:\(\texttt{dst} (x,y) = \texttt{src} ( \texttt{M} _{11} x + \texttt{M} _{12} y + \texttt{M} _{13}, \texttt{M} _{21} x + \texttt{M} _{22} y + \texttt{M} _{23})\),当设置 #WARP_INVERSE_MAP 标志时。否则,变换首先使用 #invertAffineTransform 进行反转,然后放入上面的公式中代替 M。该函数不能原地操作。
        参数
        src - 输入图像。
        dst - 大小为 dsize 且类型与 src 相同的输出图像。
        M - \(2\times 3\) 变换矩阵。
        dsize - 输出图像的大小。
        flags - 插值方法(参见 #InterpolationFlags)和可选标志 #WARP_INVERSE_MAP 的组合,表示 M 是逆变换( \(\texttt{dst}\rightarrow\texttt{src}\) )。
        borderMode - 像素外插方法(参见 #BorderTypes);当 borderMode=#BORDER_TRANSPARENT 时,表示目标图像中对应于源图像“异常值”的像素不会被函数修改。
        borderValue - 在恒定边界情况下使用的值;默认值为 0。另请参阅:warpPerspective、resize、remap、getRectSubPix、transform
      • warpAffine

        public static void warpAffine​(Mat src,
                                      Mat dst,
                                      Mat M,
                                      Size dsize,
                                      int flags,
                                      int borderMode)
        将仿射变换应用于图像。warpAffine 函数使用指定的矩阵变换源图像:\(\texttt{dst} (x,y) = \texttt{src} ( \texttt{M} _{11} x + \texttt{M} _{12} y + \texttt{M} _{13}, \texttt{M} _{21} x + \texttt{M} _{22} y + \texttt{M} _{23})\),当设置 #WARP_INVERSE_MAP 标志时。否则,变换首先使用 #invertAffineTransform 进行反转,然后放入上面的公式中代替 M。该函数不能原地操作。
        参数
        src - 输入图像。
        dst - 大小为 dsize 且类型与 src 相同的输出图像。
        M - \(2\times 3\) 变换矩阵。
        dsize - 输出图像的大小。
        flags - 插值方法(参见 #InterpolationFlags)和可选标志 #WARP_INVERSE_MAP 的组合,表示 M 是逆变换( \(\texttt{dst}\rightarrow\texttt{src}\) )。
        borderMode - 像素外插方法(参见 #BorderTypes);当 borderMode=#BORDER_TRANSPARENT 时,表示目标图像中对应于源图像“异常值”的像素不会被函数修改。另请参阅:warpPerspective、resize、remap、getRectSubPix、transform
      • warpAffine

        public static void warpAffine​(Mat src,
                                      Mat dst,
                                      Mat M,
                                      Size dsize,
                                      int flags)
        将仿射变换应用于图像。warpAffine 函数使用指定的矩阵变换源图像:\(\texttt{dst} (x,y) = \texttt{src} ( \texttt{M} _{11} x + \texttt{M} _{12} y + \texttt{M} _{13}, \texttt{M} _{21} x + \texttt{M} _{22} y + \texttt{M} _{23})\),当设置 #WARP_INVERSE_MAP 标志时。否则,变换首先使用 #invertAffineTransform 进行反转,然后放入上面的公式中代替 M。该函数不能原地操作。
        参数
        src - 输入图像。
        dst - 大小为 dsize 且类型与 src 相同的输出图像。
        M - \(2\times 3\) 变换矩阵。
        dsize - 输出图像的大小。
        flags - 插值方法(参见 #InterpolationFlags)和可选标志 #WARP_INVERSE_MAP 的组合,表示 M 是逆变换( \(\texttt{dst}\rightarrow\texttt{src}\) )。另请参阅:warpPerspective、resize、remap、getRectSubPix、transform
      • warpAffine

        public static void warpAffine​(Mat src,
                                      Mat dst,
                                      Mat M,
                                      Size dsize)
        将仿射变换应用于图像。warpAffine 函数使用指定的矩阵变换源图像:\(\texttt{dst} (x,y) = \texttt{src} ( \texttt{M} _{11} x + \texttt{M} _{12} y + \texttt{M} _{13}, \texttt{M} _{21} x + \texttt{M} _{22} y + \texttt{M} _{23})\),当设置 #WARP_INVERSE_MAP 标志时。否则,变换首先使用 #invertAffineTransform 进行反转,然后放入上面的公式中代替 M。该函数不能原地操作。
        参数
        src - 输入图像。
        dst - 大小为 dsize 且类型与 src 相同的输出图像。
        M - \(2\times 3\) 变换矩阵。
        dsize - 输出图像的大小。另请参阅:warpPerspective、resize、remap、getRectSubPix、transform
      • warpPerspective

        public static void warpPerspective​(Mat src,
                                           Mat dst,
                                           Mat M,
                                           Size dsize,
                                           int flags,
                                           int borderMode,
                                           Scalar borderValue)
        将透视变换应用于图像。warpPerspective 函数使用指定的矩阵变换源图像:\(\texttt{dst} (x,y) = \texttt{src} \left ( \frac{M_{11} x + M_{12} y + M_{13}}{M_{31} x + M_{32} y + M_{33}} , \frac{M_{21} x + M_{22} y + M_{23}}{M_{31} x + M_{32} y + M_{33}} \right )\) 当设置 #WARP_INVERSE_MAP 标志时。否则,变换首先使用 invert 进行反转,然后放入上面的公式中代替 M。该函数不能原地操作。
        参数
        src - 输入图像。
        dst - 大小为 dsize 且类型与 src 相同的输出图像。
        M - \(3\times 3\) 变换矩阵。
        dsize - 输出图像的大小。
        flags - 插值方法(#INTER_LINEAR 或 #INTER_NEAREST)和可选标志 #WARP_INVERSE_MAP 的组合,该标志将 M 设置为逆变换( \(\texttt{dst}\rightarrow\texttt{src}\) )。
        borderMode - 像素外插方法(#BORDER_CONSTANT 或 #BORDER_REPLICATE)。
        borderValue - 在恒定边界情况下使用的值;默认值为 0。另请参阅:warpAffine、resize、remap、getRectSubPix、perspectiveTransform
      • warpPerspective

        public static void warpPerspective​(Mat src,
                                           Mat dst,
                                           Mat M,
                                           Size dsize,
                                           int flags,
                                           int borderMode)
        将透视变换应用于图像。warpPerspective 函数使用指定的矩阵变换源图像:\(\texttt{dst} (x,y) = \texttt{src} \left ( \frac{M_{11} x + M_{12} y + M_{13}}{M_{31} x + M_{32} y + M_{33}} , \frac{M_{21} x + M_{22} y + M_{23}}{M_{31} x + M_{32} y + M_{33}} \right )\) 当设置 #WARP_INVERSE_MAP 标志时。否则,变换首先使用 invert 进行反转,然后放入上面的公式中代替 M。该函数不能原地操作。
        参数
        src - 输入图像。
        dst - 大小为 dsize 且类型与 src 相同的输出图像。
        M - \(3\times 3\) 变换矩阵。
        dsize - 输出图像的大小。
        flags - 插值方法(#INTER_LINEAR 或 #INTER_NEAREST)和可选标志 #WARP_INVERSE_MAP 的组合,该标志将 M 设置为逆变换( \(\texttt{dst}\rightarrow\texttt{src}\) )。
        borderMode - 像素外插方法(#BORDER_CONSTANT 或 #BORDER_REPLICATE)。另请参阅:warpAffine、resize、remap、getRectSubPix、perspectiveTransform
      • warpPerspective

        public static void warpPerspective​(Mat src,
                                           Mat dst,
                                           Mat M,
                                           Size dsize,
                                           int flags)
        将透视变换应用于图像。warpPerspective 函数使用指定的矩阵变换源图像:\(\texttt{dst} (x,y) = \texttt{src} \left ( \frac{M_{11} x + M_{12} y + M_{13}}{M_{31} x + M_{32} y + M_{33}} , \frac{M_{21} x + M_{22} y + M_{23}}{M_{31} x + M_{32} y + M_{33}} \right )\) 当设置 #WARP_INVERSE_MAP 标志时。否则,变换首先使用 invert 进行反转,然后放入上面的公式中代替 M。该函数不能原地操作。
        参数
        src - 输入图像。
        dst - 大小为 dsize 且类型与 src 相同的输出图像。
        M - \(3\times 3\) 变换矩阵。
        dsize - 输出图像的大小。
        flags - 插值方法(#INTER_LINEAR 或 #INTER_NEAREST)和可选标志 #WARP_INVERSE_MAP 的组合,该标志将 M 设置为逆变换( \(\texttt{dst}\rightarrow\texttt{src}\) )。另请参阅:warpAffine、resize、remap、getRectSubPix、perspectiveTransform
      • warpPerspective

        public static void warpPerspective​(Mat src,
                                           Mat dst,
                                           Mat M,
                                           Size dsize)
        将透视变换应用于图像。warpPerspective 函数使用指定的矩阵变换源图像:\(\texttt{dst} (x,y) = \texttt{src} \left ( \frac{M_{11} x + M_{12} y + M_{13}}{M_{31} x + M_{32} y + M_{33}} , \frac{M_{21} x + M_{22} y + M_{23}}{M_{31} x + M_{32} y + M_{33}} \right )\) 当设置 #WARP_INVERSE_MAP 标志时。否则,变换首先使用 invert 进行反转,然后放入上面的公式中代替 M。该函数不能原地操作。
        参数
        src - 输入图像。
        dst - 大小为 dsize 且类型与 src 相同的输出图像。
        M - \(3\times 3\) 变换矩阵。
        dsize - 输出图像的大小。另请参阅:warpAffine、resize、remap、getRectSubPix、perspectiveTransform
      • remap

        public static void remap​(Mat src,
                                 Mat dst,
                                 Mat map1,
                                 Mat map2,
                                 int interpolation,
                                 int borderMode,
                                 Scalar borderValue)
        将通用几何变换应用于图像。remap 函数使用指定的映射转换源图像:\(\texttt{dst} (x,y) = \texttt{src} (map_x(x,y),map_y(x,y))\) 带有 WARP_RELATIVE_MAP 标志:\(\texttt{dst} (x,y) = \texttt{src} (x+map_x(x,y),y+map_y(x,y))\),其中具有非整数坐标的像素值使用一种可用的插值方法进行计算。\(x,y\)可以编码为 \(map_1\) 和 \(map_2\) 中的单独浮点图,或者编码为 \(map_1\) 中的交错浮点图,或者使用 #convertMaps 创建的定点图。将浮点表示转换为定点表示的地图可以大大加快重映射操作(约 2 倍)的速度。在转换后的情况下,\(map_1\) 包含对 \((cvFloor(x), cvFloor(y))\) 的四舍五入坐标,\(map_2\) 包含插值系数表中索引。此函数不能原地操作。
        参数
        src - 源图像。
        dst - 目标图像。其大小与 map1 相同,类型与 src 相同。
        map1 - 第一张图,可以是 (x,y) 点图或仅 x 值图,类型为 CV_16SC2、CV_32FC1 或 CV_32FC2。有关将浮点表示转换为定点以提高速度的详细信息,请参阅 #convertMaps。
        map2 - 第二张图,包含 y 值,类型分别为 CV_16UC1、CV_32FC1 或无(如果 map1 是 (x,y) 点图,则为空图)。
        interpolation - 插值方法(请参阅 #InterpolationFlags)。此函数不支持 #INTER_AREA、#INTER_LINEAR_EXACT 和 #INTER_NEAREST_EXACT 方法。额外的标志 WARP_RELATIVE_MAP 可以与插值方法进行 OR 操作(例如 INTER_LINEAR | WARP_RELATIVE_MAP)。
        borderMode - 像素外插方法(请参阅 #BorderTypes)。当 borderMode=#BORDER_TRANSPARENT 时,表示目标图像中对应于源图像“异常值”的像素不会被函数修改。
        borderValue - 在恒定边界情况下使用的值。默认值为 0。注意: 由于当前的实现限制,输入和输出图像的大小应小于 32767x32767。
      • remap

        public static void remap​(Mat src,
                                 Mat dst,
                                 Mat map1,
                                 Mat map2,
                                 int interpolation,
                                 int borderMode)
        将通用几何变换应用于图像。remap 函数使用指定的映射转换源图像:\(\texttt{dst} (x,y) = \texttt{src} (map_x(x,y),map_y(x,y))\) 带有 WARP_RELATIVE_MAP 标志:\(\texttt{dst} (x,y) = \texttt{src} (x+map_x(x,y),y+map_y(x,y))\),其中具有非整数坐标的像素值使用一种可用的插值方法进行计算。\(x,y\)可以编码为 \(map_1\) 和 \(map_2\) 中的单独浮点图,或者编码为 \(map_1\) 中的交错浮点图,或者使用 #convertMaps 创建的定点图。将浮点表示转换为定点表示的地图可以大大加快重映射操作(约 2 倍)的速度。在转换后的情况下,\(map_1\) 包含对 \((cvFloor(x), cvFloor(y))\) 的四舍五入坐标,\(map_2\) 包含插值系数表中索引。此函数不能原地操作。
        参数
        src - 源图像。
        dst - 目标图像。其大小与 map1 相同,类型与 src 相同。
        map1 - 第一张图,可以是 (x,y) 点图或仅 x 值图,类型为 CV_16SC2、CV_32FC1 或 CV_32FC2。有关将浮点表示转换为定点以提高速度的详细信息,请参阅 #convertMaps。
        map2 - 第二张图,包含 y 值,类型分别为 CV_16UC1、CV_32FC1 或无(如果 map1 是 (x,y) 点图,则为空图)。
        interpolation - 插值方法(请参阅 #InterpolationFlags)。此函数不支持 #INTER_AREA、#INTER_LINEAR_EXACT 和 #INTER_NEAREST_EXACT 方法。额外的标志 WARP_RELATIVE_MAP 可以与插值方法进行 OR 操作(例如 INTER_LINEAR | WARP_RELATIVE_MAP)。
        borderMode - 像素外插方法(请参阅 #BorderTypes)。当 borderMode=#BORDER_TRANSPARENT 时,表示目标图像中对应于源图像“异常值”的像素不会被函数修改。注意: 由于当前的实现限制,输入和输出图像的大小应小于 32767x32767。
      • remap

        public static void remap​(Mat src,
                                 Mat dst,
                                 Mat map1,
                                 Mat map2,
                                 int interpolation)
        将通用几何变换应用于图像。remap 函数使用指定的映射转换源图像:\(\texttt{dst} (x,y) = \texttt{src} (map_x(x,y),map_y(x,y))\) 带有 WARP_RELATIVE_MAP 标志:\(\texttt{dst} (x,y) = \texttt{src} (x+map_x(x,y),y+map_y(x,y))\),其中具有非整数坐标的像素值使用一种可用的插值方法进行计算。\(x,y\)可以编码为 \(map_1\) 和 \(map_2\) 中的单独浮点图,或者编码为 \(map_1\) 中的交错浮点图,或者使用 #convertMaps 创建的定点图。将浮点表示转换为定点表示的地图可以大大加快重映射操作(约 2 倍)的速度。在转换后的情况下,\(map_1\) 包含对 \((cvFloor(x), cvFloor(y))\) 的四舍五入坐标,\(map_2\) 包含插值系数表中索引。此函数不能原地操作。
        参数
        src - 源图像。
        dst - 目标图像。其大小与 map1 相同,类型与 src 相同。
        map1 - 第一张图,可以是 (x,y) 点图或仅 x 值图,类型为 CV_16SC2、CV_32FC1 或 CV_32FC2。有关将浮点表示转换为定点以提高速度的详细信息,请参阅 #convertMaps。
        map2 - 第二张图,包含 y 值,类型分别为 CV_16UC1、CV_32FC1 或无(如果 map1 是 (x,y) 点图,则为空图)。
        interpolation - 插值方法(请参阅 #InterpolationFlags)。此函数不支持 #INTER_AREA、#INTER_LINEAR_EXACT 和 #INTER_NEAREST_EXACT 方法。额外的标志 WARP_RELATIVE_MAP 可以与插值方法进行 OR 操作(例如 INTER_LINEAR | WARP_RELATIVE_MAP)。另请参阅:remap 注意: 由于当前的实现限制,输入和输出图像的大小应小于 32767x32767。
      • convertMaps

        public static void convertMaps​(Mat map1,
                                       Mat map2,
                                       Mat dstmap1,
                                       Mat dstmap2,
                                       int dstmap1type,
                                       boolean nninterpolation)
        将图像变换映射从一种表示转换为另一种表示。该函数将 remap 的一对映射从一种表示转换为另一种表示。支持以下选项((map1.type(), map2.type()) \(\rightarrow\) (dstmap1.type(), dstmap2.type())):
        • \(\texttt{(CV_32FC1, CV_32FC1)} \rightarrow \texttt{(CV_16SC2, CV_16UC1)}\)。这是最常用的转换操作,其中原始浮点图(参见 #remap)被转换为更紧凑且速度快得多的定点表示。第一个输出数组包含四舍五入的坐标,第二个数组(仅当 nninterpolation=false 时创建)包含插值系数表的索引。
        • \(\texttt{(CV_32FC2)} \rightarrow \texttt{(CV_16SC2, CV_16UC1)}\)。与上面相同,但原始图存储在一个 2 通道矩阵中。
        • 反向转换。显然,重建的浮点图与原始图不会完全相同。
        参数
        map1 - 第一张输入图,类型为 CV_16SC2、CV_32FC1 或 CV_32FC2。
        map2 - 第二张输入图,类型分别为 CV_16UC1、CV_32FC1 或无(空矩阵)。
        dstmap1 - 第一个输出映射,其类型为dstmap1type,并且大小与src相同。
        dstmap2 - 第二个输出映射。
        dstmap1type - 第一个输出映射的类型,应为CV_16SC2、CV_32FC1或CV_32FC2。
        nninterpolation - 指示是使用最近邻的定点图还是更复杂的插值。参见:remap, undistort, initUndistortRectifyMap
      • convertMaps

        public static void convertMaps​(Mat map1,
                                       Mat map2,
                                       Mat dstmap1,
                                       Mat dstmap2,
                                       int dstmap1type)
        将图像变换映射从一种表示转换为另一种表示。该函数将 remap 的一对映射从一种表示转换为另一种表示。支持以下选项((map1.type(), map2.type()) \(\rightarrow\) (dstmap1.type(), dstmap2.type())):
        • \(\texttt{(CV_32FC1, CV_32FC1)} \rightarrow \texttt{(CV_16SC2, CV_16UC1)}\)。这是最常用的转换操作,其中原始浮点图(参见 #remap)被转换为更紧凑且速度快得多的定点表示。第一个输出数组包含四舍五入的坐标,第二个数组(仅当 nninterpolation=false 时创建)包含插值系数表的索引。
        • \(\texttt{(CV_32FC2)} \rightarrow \texttt{(CV_16SC2, CV_16UC1)}\)。与上面相同,但原始图存储在一个 2 通道矩阵中。
        • 反向转换。显然,重建的浮点图与原始图不会完全相同。
        参数
        map1 - 第一张输入图,类型为 CV_16SC2、CV_32FC1 或 CV_32FC2。
        map2 - 第二张输入图,类型分别为 CV_16UC1、CV_32FC1 或无(空矩阵)。
        dstmap1 - 第一个输出映射,其类型为dstmap1type,并且大小与src相同。
        dstmap2 - 第二个输出映射。
        dstmap1type - 第一个输出映射的类型,应为CV_16SC2、CV_32FC1或CV_32FC2。最近邻或更复杂的插值。参见:remap, undistort, initUndistortRectifyMap
      • getRotationMatrix2D

        public static Mat getRotationMatrix2D​(Point center,
                                              double angle,
                                              double scale)
        计算二维旋转的仿射矩阵。该函数计算以下矩阵:\(\begin{bmatrix} \alpha & \beta & (1- \alpha ) \cdot \texttt{center.x} - \beta \cdot \texttt{center.y} \\ - \beta & \alpha & \beta \cdot \texttt{center.x} + (1- \alpha ) \cdot \texttt{center.y} \end{bmatrix}\)其中\(\begin{array}{l} \alpha = \texttt{scale} \cdot \cos \texttt{angle} , \\ \beta = \texttt{scale} \cdot \sin \texttt{angle} \end{array}\)变换将旋转中心映射到自身。如果这不是目标,请调整偏移量。
        参数
        center - 源图像中的旋转中心。
        angle - 以度为单位的旋转角度。正值表示逆时针旋转(假定坐标原点为左上角)。
        scale - 各向同性尺度因子。参见:getAffineTransform, warpAffine, transform
        返回
        自动生成
      • invertAffineTransform

        public static void invertAffineTransform​(Mat M,
                                                 Mat iM)
        反转仿射变换。该函数计算由\(2 \times 3\)矩阵M表示的逆仿射变换:\(\begin{bmatrix} a_{11} & a_{12} & b_1 \\ a_{21} & a_{22} & b_2 \end{bmatrix}\)结果也是一个与M相同类型的\(2 \times 3\)矩阵。
        参数
        M - 原始仿射变换。
        iM - 输出反向仿射变换。
      • getPerspectiveTransform

        public static Mat getPerspectiveTransform​(Mat src,
                                                  Mat dst,
                                                  int solveMethod)
        从四个对应点对计算透视变换。该函数计算透视变换的\(3 \times 3\)矩阵,使得:\(\begin{bmatrix} t_i x'_i \\ t_i y'_i \\ t_i \end{bmatrix} = \texttt{map_matrix} \cdot \begin{bmatrix} x_i \\ y_i \\ 1 \end{bmatrix}\)其中\(dst(i)=(x'_i,y'_i), src(i)=(x_i, y_i), i=0,1,2,3\)
        参数
        src - 源图像中四边形顶点的坐标。
        dst - 目标图像中对应四边形顶点的坐标。
        solveMethod - 传递给cv::solve的参数(#DecompTypes)。参见:findHomography, warpPerspective, perspectiveTransform
        返回
        自动生成
      • getPerspectiveTransform

        public static Mat getPerspectiveTransform​(Mat src,
                                                  Mat dst)
        从四个对应点对计算透视变换。该函数计算透视变换的\(3 \times 3\)矩阵,使得:\(\begin{bmatrix} t_i x'_i \\ t_i y'_i \\ t_i \end{bmatrix} = \texttt{map_matrix} \cdot \begin{bmatrix} x_i \\ y_i \\ 1 \end{bmatrix}\)其中\(dst(i)=(x'_i,y'_i), src(i)=(x_i, y_i), i=0,1,2,3\)
        参数
        src - 源图像中四边形顶点的坐标。
        dst - 目标图像中对应四边形顶点的坐标。参见:findHomography, warpPerspective, perspectiveTransform
        返回
        自动生成
      • getRectSubPix

        public static void getRectSubPix​(Mat image,
                                         Size patchSize,
                                         Point center,
                                         Mat patch,
                                         int patchType)
        以亚像素精度检索图像中的像素矩形。getRectSubPix函数从src中提取像素:\(patch(x, y) = src(x + \texttt{center.x} - ( \texttt{dst.cols} -1)*0.5, y + \texttt{center.y} - ( \texttt{dst.rows} -1)*0.5)\)其中非整数坐标处的像素值是通过双线性插值检索的。多通道图像的每个通道独立处理。图像应该是单通道或三通道图像。虽然矩形的中心必须在图像内,但矩形的部分可能在图像外。
        参数
        image - 源图像。
        patchSize - 提取的块的大小。
        center - 源图像中提取矩形中心的浮点坐标。中心必须在图像内。
        patch - 提取的块,其大小为patchSize,并且通道数与src相同。
        patchType - 提取像素的深度。默认情况下,它们与src具有相同的深度。参见:warpAffine, warpPerspective
      • getRectSubPix

        public static void getRectSubPix​(Mat image,
                                         Size patchSize,
                                         Point center,
                                         Mat patch)
        以亚像素精度检索图像中的像素矩形。getRectSubPix函数从src中提取像素:\(patch(x, y) = src(x + \texttt{center.x} - ( \texttt{dst.cols} -1)*0.5, y + \texttt{center.y} - ( \texttt{dst.rows} -1)*0.5)\)其中非整数坐标处的像素值是通过双线性插值检索的。多通道图像的每个通道独立处理。图像应该是单通道或三通道图像。虽然矩形的中心必须在图像内,但矩形的部分可能在图像外。
        参数
        image - 源图像。
        patchSize - 提取的块的大小。
        center - 源图像中提取矩形中心的浮点坐标。中心必须在图像内。
        patch - 提取的块,其大小为patchSize,并且通道数与src相同。参见:warpAffine, warpPerspective
      • logPolar

        @Deprecated
        public static void logPolar​(Mat src,
                                    Mat dst,
                                    Point center,
                                    double M,
                                    int flags)
        已弃用。
        此函数产生与 cv::warpPolar(src, dst, src.size(), center, maxRadius, flags+WARP_POLAR_LOG) 相同的结果。使用以下变换变换源图像(请参阅 REF: polar_remaps_reference_image "极坐标重映射参考图像 d)"): \(\begin{array}{l} dst( \rho , \phi ) = src(x,y) \\ dst.size() \leftarrow src.size() \end{array}\) 其中 \(\begin{array}{l} I = (dx,dy) = (x - center.x,y - center.y) \\ \rho = M \cdot log_e(\texttt{magnitude} (I)) ,\\ \phi = Kangle \cdot \texttt{angle} (I) \\ \end{array}\) 和 \(\begin{array}{l} M = src.cols / log_e(maxRadius) \\ Kangle = src.rows / 2\Pi \\ \end{array}\) 该函数模拟了人类的“视野”视觉,可用于快速进行尺度和旋转不变的模板匹配、对象跟踪等。 (This function produces same result as cv::warpPolar(src, dst, src.size(), center, maxRadius, flags+WARP_POLAR_LOG); Transform the source image using the following transformation (See REF: polar_remaps_reference_image "Polar remaps reference image d)"): \(\begin{array}{l} dst( \rho , \phi ) = src(x,y) \\ dst.size() \leftarrow src.size() \end{array}\) where \(\begin{array}{l} I = (dx,dy) = (x - center.x,y - center.y) \\ \rho = M \cdot log_e(\texttt{magnitude} (I)) ,\\ \phi = Kangle \cdot \texttt{angle} (I) \\ \end{array}\) and \(\begin{array}{l} M = src.cols / log_e(maxRadius) \\ Kangle = src.rows / 2\Pi \\ \end{array}\) The function emulates the human "foveal" vision and can be used for fast scale and rotation-invariant template matching, for object tracking and so forth.)
        将图像重映射到对数极坐标空间。
        参数
        src - 源图像。
        dst - 目标图像。它将具有与src相同的大小和类型。
        center - 变换中心;输出精度最高的位置。
        M - 幅度尺度参数。它决定了要变换的边界圆的半径。
        flags - 插值方法组合,请参见#InterpolationFlags。注意:
        • 该函数不能原地操作。
        • 要计算以度为单位的幅度和角度,内部使用了#cartToPolar,因此角度测量范围为0到360度,精度约为0.3度。
        参见:cv::linearPolar
      • linearPolar

        @Deprecated
        public static void linearPolar​(Mat src,
                                       Mat dst,
                                       Point center,
                                       double maxRadius,
                                       int flags)
        已弃用。
        此函数产生与 cv::warpPolar(src, dst, src.size(), center, maxRadius, flags) 相同的结果。使用以下变换变换源图像(请参阅 REF: polar_remaps_reference_image "极坐标重映射参考图像 c)"): \(\begin{array}{l} dst( \rho , \phi ) = src(x,y) \\ dst.size() \leftarrow src.size() \end{array}\) 其中 \(\begin{array}{l} I = (dx,dy) = (x - center.x,y - center.y) \\ \rho = Kmag \cdot \texttt{magnitude} (I) ,\\ \phi = angle \cdot \texttt{angle} (I) \end{array}\) 和 \(\begin{array}{l} Kx = src.cols / maxRadius \\ Ky = src.rows / 2\Pi \end{array}\) (This function produces same result as cv::warpPolar(src, dst, src.size(), center, maxRadius, flags) Transform the source image using the following transformation (See REF: polar_remaps_reference_image "Polar remaps reference image c)"): \(\begin{array}{l} dst( \rho , \phi ) = src(x,y) \\ dst.size() \leftarrow src.size() \end{array}\) where \(\begin{array}{l} I = (dx,dy) = (x - center.x,y - center.y) \\ \rho = Kmag \cdot \texttt{magnitude} (I) ,\\ \phi = angle \cdot \texttt{angle} (I) \end{array}\) and \(\begin{array}{l} Kx = src.cols / maxRadius \\ Ky = src.rows / 2\Pi \end{array}\))
        将图像重映射到极坐标空间。
        参数
        src - 源图像。
        dst - 目标图像。它将具有与src相同的大小和类型。
        center - 变换中心;
        maxRadius - 要变换的边界圆的半径。它也决定了反向幅度尺度参数。
        flags - 插值方法组合,请参见#InterpolationFlags。注意:
        • 该函数不能原地操作。
        • 要计算以度为单位的幅度和角度,内部使用了#cartToPolar,因此角度测量范围为0到360度,精度约为0.3度。
        参见:cv::logPolar
      • warpPolar

        public static void warpPolar​(Mat src,
                                     Mat dst,
                                     Size dsize,
                                     Point center,
                                     double maxRadius,
                                     int flags)
        将图像重新映射到极坐标或半对数极坐标空间 polar_remaps_reference_image ![Polar remaps reference](pics/polar_remap_doc.png) 使用以下变换转换源图像:\( dst(\rho , \phi ) = src(x,y) \)其中\( \begin{array}{l} \vec{I} = (x - center.x, \;y - center.y) \\ \phi = Kangle \cdot \texttt{angle} (\vec{I}) \\ \rho = \left\{\begin{matrix} Klin \cdot \texttt{magnitude} (\vec{I}) & default \\ Klog \cdot log_e(\texttt{magnitude} (\vec{I})) & if \; semilog \\ \end{matrix}\right. \end{array} \)和\( \begin{array}{l} Kangle = dsize.height / 2\Pi \\ Klin = dsize.width / maxRadius \\ Klog = dsize.width / log_e(maxRadius) \\ \end{array} \) \par 线性与半对数映射 极坐标映射可以是线性的或半对数的。添加#WarpPolarMode之一到flags以指定极坐标映射模式。线性是默认模式。半对数映射模拟了人类的“视网膜中央凹”视觉,它允许在视线(中心视野)上具有非常高的清晰度,而与外围视野相反,外围视野的清晰度较低。 \par dsize的选项
        • 如果dsize &lt;=0 (默认)中的两个值都小于等于0,则目标图像将具有(几乎)与源边界圆相同的面积:\(\begin{array}{l} dsize.area \leftarrow (maxRadius^2 \cdot \Pi) \\ dsize.width = \texttt{cvRound}(maxRadius) \\ dsize.height = \texttt{cvRound}(maxRadius \cdot \Pi) \\ \end{array}\)
        • 如果仅dsize.height &lt;= 0,则目标图像的面积将与边界圆的面积成正比,但会乘以Kx * Kx:\(\begin{array}{l} dsize.height = \texttt{cvRound}(dsize.width \cdot \Pi) \\ \end{array} \)
        • 如果dsize &gt; 0 中的两个值都大于0,则目标图像将具有给定的大小,因此边界圆的面积将缩放到dsize
        \par 反向映射 可以通过添加#WARP_INVERSE_MAP到flags来获得反向映射。\snippet polar_transforms.cpp InverseMap 另外,要计算从极坐标映射坐标\((rho, phi)\)到原始坐标\((x, y)\),可以使用以下代码:\snippet polar_transforms.cpp InverseCoordinate
        参数
        src - 源图像。
        dst - 目标图像。它将具有与src相同的类型。
        dsize - 目标图像的大小(请参阅描述以了解有效选项)。
        center - 变换中心。
        maxRadius - 要变换的边界圆的半径。它也决定了反向幅度尺度参数。
        flags - 插值方法、#InterpolationFlags + #WarpPolarMode的组合。
        • 添加#WARP_POLAR_LINEAR以选择线性极坐标映射(默认)。
        • 添加#WARP_POLAR_LOG以选择半对数极坐标映射。
        • 添加#WARP_INVERSE_MAP用于反向映射。
        注意
        • 该函数不能原地操作。
        • 要计算以度为单位的幅度和角度,内部使用了#cartToPolar,因此角度测量范围为0到360度,精度约为0.3度。
        • 此函数使用#remap。由于当前的实现限制,输入和输出图像的大小应小于32767x32767。
        参见:cv::remap
      • integral3

        public static void integral3​(Mat src,
                                     Mat sum,
                                     Mat sqsum,
                                     Mat tilted,
                                     int sdepth,
                                     int sqdepth)
        计算图像的积分。该函数为源图像计算一个或多个积分图像,如下所示:\(\texttt{sum} (X,Y) = \sum _{x<X,y<Y} \texttt{image} (x,y)\) \(\texttt{sqsum} (X,Y) = \sum _{x<X,y<Y} \texttt{image} (x,y)^2\) \(\texttt{tilted} (X,Y) = \sum _{y<Y,abs(x-X+1) \leq Y-y-1} \texttt{image} (x,y)\)使用这些积分图像,可以在恒定时间内计算特定直角或旋转矩形区域的图像的求和、平均值和标准差,例如:\(\sum _{x_1 \leq x < x_2, \, y_1 \leq y < y_2} \texttt{image} (x,y) = \texttt{sum} (x_2,y_2)- \texttt{sum} (x_1,y_2)- \texttt{sum} (x_2,y_1)+ \texttt{sum} (x_1,y_1)\)这使得可以进行快速模糊或快速块相关,窗口大小可变,例如。对于多通道图像,每个通道的求和独立累加。作为实际示例,下图显示了直角Rect(4,4,3,2)和倾斜矩形Rect(5,1,2,3)的积分计算。原始图像中选择的像素显示在图示中,以及积分图像sum和tilted中相应的像素。 ![integral calculation example](pics/integral.png)
        参数
        src - 输入图像,格式为\(W \times H\),8位或浮点(32f或64f)。
        sum - 积分图像,格式为\((W+1)\times (H+1)\),32位整数或浮点(32f或64f)。
        sqsum - 图像平方像素值的积分图像;它是一个\((W+1)\times (H+1)\)的双精度浮点(64f)数组。
        tilted - 图像旋转45度的积分图像;它是一个\((W+1)\times (H+1)\)的数组,数据类型与sum相同。
        sdepth - 积分和倾斜积分图像所需的深度,CV_32S、CV_32F或CV_64F。
        sqdepth - 平方像素值积分图像所需的深度,CV_32F或CV_64F。
      • integral3

        public static void integral3​(Mat src,
                                     Mat sum,
                                     Mat sqsum,
                                     Mat tilted,
                                     int sdepth)
        计算图像的积分。该函数为源图像计算一个或多个积分图像,如下所示:\(\texttt{sum} (X,Y) = \sum _{x<X,y<Y} \texttt{image} (x,y)\) \(\texttt{sqsum} (X,Y) = \sum _{x<X,y<Y} \texttt{image} (x,y)^2\) \(\texttt{tilted} (X,Y) = \sum _{y<Y,abs(x-X+1) \leq Y-y-1} \texttt{image} (x,y)\)使用这些积分图像,可以在恒定时间内计算特定直角或旋转矩形区域的图像的求和、平均值和标准差,例如:\(\sum _{x_1 \leq x < x_2, \, y_1 \leq y < y_2} \texttt{image} (x,y) = \texttt{sum} (x_2,y_2)- \texttt{sum} (x_1,y_2)- \texttt{sum} (x_2,y_1)+ \texttt{sum} (x_1,y_1)\)这使得可以进行快速模糊或快速块相关,窗口大小可变,例如。对于多通道图像,每个通道的求和独立累加。作为实际示例,下图显示了直角Rect(4,4,3,2)和倾斜矩形Rect(5,1,2,3)的积分计算。原始图像中选择的像素显示在图示中,以及积分图像sum和tilted中相应的像素。 ![integral calculation example](pics/integral.png)
        参数
        src - 输入图像,格式为\(W \times H\),8位或浮点(32f或64f)。
        sum - 积分图像,格式为\((W+1)\times (H+1)\),32位整数或浮点(32f或64f)。
        sqsum - 图像平方像素值的积分图像;它是一个\((W+1)\times (H+1)\)的双精度浮点(64f)数组。
        tilted - 图像旋转45度的积分图像;它是一个\((W+1)\times (H+1)\)的数组,数据类型与sum相同。
        sdepth - 积分和倾斜积分图像所需的深度,CV_32S、CV_32F或CV_64F。
      • integral3

        public static void integral3​(Mat src,
                                     Mat sum,
                                     Mat sqsum,
                                     Mat tilted)
        计算图像的积分。该函数为源图像计算一个或多个积分图像,如下所示:\(\texttt{sum} (X,Y) = \sum _{x<X,y<Y} \texttt{image} (x,y)\) \(\texttt{sqsum} (X,Y) = \sum _{x<X,y<Y} \texttt{image} (x,y)^2\) \(\texttt{tilted} (X,Y) = \sum _{y<Y,abs(x-X+1) \leq Y-y-1} \texttt{image} (x,y)\)使用这些积分图像,可以在恒定时间内计算特定直角或旋转矩形区域的图像的求和、平均值和标准差,例如:\(\sum _{x_1 \leq x < x_2, \, y_1 \leq y < y_2} \texttt{image} (x,y) = \texttt{sum} (x_2,y_2)- \texttt{sum} (x_1,y_2)- \texttt{sum} (x_2,y_1)+ \texttt{sum} (x_1,y_1)\)这使得可以进行快速模糊或快速块相关,窗口大小可变,例如。对于多通道图像,每个通道的求和独立累加。作为实际示例,下图显示了直角Rect(4,4,3,2)和倾斜矩形Rect(5,1,2,3)的积分计算。原始图像中选择的像素显示在图示中,以及积分图像sum和tilted中相应的像素。 ![integral calculation example](pics/integral.png)
        参数
        src - 输入图像,格式为\(W \times H\),8位或浮点(32f或64f)。
        sum - 积分图像,格式为\((W+1)\times (H+1)\),32位整数或浮点(32f或64f)。
        sqsum - 图像平方像素值的积分图像;它是一个\((W+1)\times (H+1)\)的双精度浮点(64f)数组。
        tilted - 图像旋转45度的积分图像;它是一个\((W+1)\times (H+1)\)的数组,数据类型与sum相同。CV_64F。
      • integral

        public static void integral​(Mat src,
                                    Mat sum,
                                    int sdepth)
      • integral

        public static void integral​(Mat src,
                                    Mat sum)
      • integral2

        public static void integral2​(Mat src,
                                     Mat sum,
                                     Mat sqsum,
                                     int sdepth,
                                     int sqdepth)
      • integral2

        public static void integral2​(Mat src,
                                     Mat sum,
                                     Mat sqsum,
                                     int sdepth)
      • integral2

        public static void integral2​(Mat src,
                                     Mat sum,
                                     Mat sqsum)
      • accumulate

        public static void accumulate​(Mat src,
                                      Mat dst,
                                      Mat mask)
        将图像添加到累加器图像。该函数将src或其某些元素添加到dst:\(\texttt{dst} (x,y) \leftarrow \texttt{dst} (x,y) + \texttt{src} (x,y) \quad \text{if} \quad \texttt{mask} (x,y) \ne 0\)该函数支持多通道图像。每个通道独立处理。cv::accumulate函数可用于收集静止摄像机观察到的场景背景的统计信息,并用于进一步的前景-背景分割。
        参数
        src - 输入图像,类型为CV_8UC(n)、CV_16UC(n)、CV_32FC(n)或CV_64FC(n),其中n为正整数。
        dst - 累加器图像,具有与输入图像相同的通道数,并且深度为CV_32F或CV_64F。
        mask - 可选操作掩码。参见:accumulateSquare, accumulateProduct, accumulateWeighted
      • accumulate

        public static void accumulate​(Mat src,
                                      Mat dst)
        将图像添加到累加器图像。该函数将src或其某些元素添加到dst:\(\texttt{dst} (x,y) \leftarrow \texttt{dst} (x,y) + \texttt{src} (x,y) \quad \text{if} \quad \texttt{mask} (x,y) \ne 0\)该函数支持多通道图像。每个通道独立处理。cv::accumulate函数可用于收集静止摄像机观察到的场景背景的统计信息,并用于进一步的前景-背景分割。
        参数
        src - 输入图像,类型为CV_8UC(n)、CV_16UC(n)、CV_32FC(n)或CV_64FC(n),其中n为正整数。
        dst - 累加器图像,具有与输入图像相同的通道数,并且深度为CV_32F或CV_64F。参见:accumulateSquare, accumulateProduct, accumulateWeighted
      • accumulateSquare

        public static void accumulateSquare​(Mat src,
                                            Mat dst,
                                            Mat mask)
        将源图像的平方添加到累加器图像。该函数将输入图像src或其选定区域的平方添加到累加器dst:\(\texttt{dst} (x,y) \leftarrow \texttt{dst} (x,y) + \texttt{src} (x,y)^2 \quad \text{if} \quad \texttt{mask} (x,y) \ne 0\)该函数支持多通道图像。每个通道独立处理。
        参数
        src - 输入图像,1通道或3通道,8位或32位浮点。
        dst - 累加器图像,具有与输入图像相同的通道数,32位或64位浮点。
        mask - 可选操作掩码。参见:accumulateSquare, accumulateProduct, accumulateWeighted
      • accumulateSquare

        public static void accumulateSquare​(Mat src,
                                            Mat dst)
        将源图像的平方添加到累加器图像。该函数将输入图像src或其选定区域的平方添加到累加器dst:\(\texttt{dst} (x,y) \leftarrow \texttt{dst} (x,y) + \texttt{src} (x,y)^2 \quad \text{if} \quad \texttt{mask} (x,y) \ne 0\)该函数支持多通道图像。每个通道独立处理。
        参数
        src - 输入图像,1通道或3通道,8位或32位浮点。
        dst - 累加器图像,具有与输入图像相同的通道数,32位或64位浮点。参见:accumulateSquare, accumulateProduct, accumulateWeighted
      • accumulateProduct

        public static void accumulateProduct​(Mat src1,
                                             Mat src2,
                                             Mat dst,
                                             Mat mask)
        将两个输入图像的逐元素乘积添加到累加器图像。该函数将两个图像的乘积或其选定区域添加到累加器dst:\(\texttt{dst} (x,y) \leftarrow \texttt{dst} (x,y) + \texttt{src1} (x,y) \cdot \texttt{src2} (x,y) \quad \text{if} \quad \texttt{mask} (x,y) \ne 0\)该函数支持多通道图像。每个通道独立处理。
        参数
        src1 - 第一个输入图像,1通道或3通道,8位或32位浮点。
        src2 - 第二个输入图像,类型和大小与src1相同。
        dst - 累加器图像,具有与输入图像相同的通道数,32位或64位浮点。
        mask - 可选操作掩码。参见:accumulate, accumulateSquare, accumulateWeighted
      • accumulateProduct

        public static void accumulateProduct​(Mat src1,
                                             Mat src2,
                                             Mat dst)
        将两个输入图像的逐元素乘积添加到累加器图像。该函数将两个图像的乘积或其选定区域添加到累加器dst:\(\texttt{dst} (x,y) \leftarrow \texttt{dst} (x,y) + \texttt{src1} (x,y) \cdot \texttt{src2} (x,y) \quad \text{if} \quad \texttt{mask} (x,y) \ne 0\)该函数支持多通道图像。每个通道独立处理。
        参数
        src1 - 第一个输入图像,1通道或3通道,8位或32位浮点。
        src2 - 第二个输入图像,类型和大小与src1相同。
        dst - 累加器图像,具有与输入图像相同的通道数,32位或64位浮点。参见:accumulate, accumulateSquare, accumulateWeighted
      • accumulateWeighted

        public static void accumulateWeighted​(Mat src,
                                              Mat dst,
                                              double alpha,
                                              Mat mask)
        更新运行平均值。该函数计算输入图像src和累加器dst的加权和,使得dst成为帧序列的运行平均值:\(\texttt{dst} (x,y) \leftarrow (1- \texttt{alpha} ) \cdot \texttt{dst} (x,y) + \texttt{alpha} \cdot \texttt{src} (x,y) \quad \text{if} \quad \texttt{mask} (x,y) \ne 0\)也就是说,alpha调节更新速度(累加器“忘记”早期图像的速度)。该函数支持多通道图像。每个通道独立处理。
        参数
        src - 输入图像,1通道或3通道,8位或32位浮点。
        dst - 累加器图像,具有与输入图像相同的通道数,32位或64位浮点。
        alpha - 输入图像的权重。
        mask - 可选操作掩码。参见:accumulate, accumulateSquare, accumulateProduct
      • accumulateWeighted

        public static void accumulateWeighted​(Mat src,
                                              Mat dst,
                                              double alpha)
        更新运行平均值。该函数计算输入图像src和累加器dst的加权和,使得dst成为帧序列的运行平均值:\(\texttt{dst} (x,y) \leftarrow (1- \texttt{alpha} ) \cdot \texttt{dst} (x,y) + \texttt{alpha} \cdot \texttt{src} (x,y) \quad \text{if} \quad \texttt{mask} (x,y) \ne 0\)也就是说,alpha调节更新速度(累加器“忘记”早期图像的速度)。该函数支持多通道图像。每个通道独立处理。
        参数
        src - 输入图像,1通道或3通道,8位或32位浮点。
        dst - 累加器图像,具有与输入图像相同的通道数,32位或64位浮点。
        alpha - 输入图像的权重。参见:accumulate, accumulateSquare, accumulateProduct
      • phaseCorrelate

        public static Point phaseCorrelate​(Mat src1,
                                           Mat src2,
                                           Mat window,
                                           double[] response)
        该函数用于检测两幅图像之间发生的平移。该操作利用了傅里叶移位定理来检测频域中的平移。它可以用于快速图像配准和运动估计。有关更多信息,请参阅<https://en.wikipedia.org/wiki/Phase_correlation> 计算两个提供的源数组的互功率谱。如果需要,数组会用getOptimalDFTSize进行填充。该函数执行以下方程:
        • 首先,它对每个图像应用一个Hanning窗口以去除可能的边缘效应,如果用户提供了该窗口。请参阅REF: createHanningWindow和<https://en.wikipedia.org/wiki/Hann_function>。此窗口可以缓存,直到数组大小发生变化,以加快处理速度。
        • 接下来,它计算每个频域数组的向前DFT:\(\mathbf{G}_a = \mathcal{F}\{src_1\}, \; \mathbf{G}_b = \mathcal{F}\{src_2\}\)其中\(\mathcal{F}\)是向前DFT。
        • 然后,它计算每个频域数组的互功率谱:\(R = \frac{ \mathbf{G}_a \mathbf{G}_b^*}{|\mathbf{G}_a \mathbf{G}_b^*|}\)
        • 接下来,通过逆DFT将互相关转换回时域:\(r = \mathcal{F}^{-1}\{R\}\)
        • 最后,它计算峰值位置,并计算峰值周围的5x5加权质心以实现亚像素精度。\((\Delta x, \Delta y) = \texttt{weightedCentroid} \{\arg \max_{(x, y)}\{r\}\}\)
        • 如果非零,则响应参数计算为r在峰值位置周围的5x5质心内的元素之和。它被归一化为最大值1(表示只有一个峰值),当有多个峰值时,值会变小。
        参数
        src1 - 源浮点数组(CV_32FC1或CV_64FC1)。
        src2 - 源浮点数组(CV_32FC1或CV_64FC1)。
        window - 具有窗口系数的浮点数组,用于减少边缘效应(可选)。
        response - 峰值周围5x5质心内的信号功率,范围在0到1之间(可选)。
        返回
        检测到的两个数组之间的相位偏移(亚像素)。参见:dft, getOptimalDFTSize, idft, mulSpectrums createHanningWindow
      • phaseCorrelate

        public static Point phaseCorrelate​(Mat src1,
                                           Mat src2,
                                           Mat window)
        该函数用于检测两幅图像之间发生的平移。该操作利用了傅里叶移位定理来检测频域中的平移。它可以用于快速图像配准和运动估计。有关更多信息,请参阅<https://en.wikipedia.org/wiki/Phase_correlation> 计算两个提供的源数组的互功率谱。如果需要,数组会用getOptimalDFTSize进行填充。该函数执行以下方程:
        • 首先,它对每个图像应用一个Hanning窗口以去除可能的边缘效应,如果用户提供了该窗口。请参阅REF: createHanningWindow和<https://en.wikipedia.org/wiki/Hann_function>。此窗口可以缓存,直到数组大小发生变化,以加快处理速度。
        • 接下来,它计算每个频域数组的向前DFT:\(\mathbf{G}_a = \mathcal{F}\{src_1\}, \; \mathbf{G}_b = \mathcal{F}\{src_2\}\)其中\(\mathcal{F}\)是向前DFT。
        • 然后,它计算每个频域数组的互功率谱:\(R = \frac{ \mathbf{G}_a \mathbf{G}_b^*}{|\mathbf{G}_a \mathbf{G}_b^*|}\)
        • 接下来,通过逆DFT将互相关转换回时域:\(r = \mathcal{F}^{-1}\{R\}\)
        • 最后,它计算峰值位置,并计算峰值周围的5x5加权质心以实现亚像素精度。\((\Delta x, \Delta y) = \texttt{weightedCentroid} \{\arg \max_{(x, y)}\{r\}\}\)
        • 如果非零,则响应参数计算为r在峰值位置周围的5x5质心内的元素之和。它被归一化为最大值1(表示只有一个峰值),当有多个峰值时,值会变小。
        参数
        src1 - 源浮点数组(CV_32FC1或CV_64FC1)。
        src2 - 源浮点数组(CV_32FC1或CV_64FC1)。
        window - 具有窗口系数的浮点数组,用于减少边缘效应(可选)。
        返回
        检测到的两个数组之间的相位偏移(亚像素)。参见:dft, getOptimalDFTSize, idft, mulSpectrums createHanningWindow
      • phaseCorrelate

        public static Point phaseCorrelate​(Mat src1,
                                           Mat src2)
        该函数用于检测两幅图像之间发生的平移。该操作利用了傅里叶移位定理来检测频域中的平移。它可以用于快速图像配准和运动估计。有关更多信息,请参阅<https://en.wikipedia.org/wiki/Phase_correlation> 计算两个提供的源数组的互功率谱。如果需要,数组会用getOptimalDFTSize进行填充。该函数执行以下方程:
        • 首先,它对每个图像应用一个Hanning窗口以去除可能的边缘效应,如果用户提供了该窗口。请参阅REF: createHanningWindow和<https://en.wikipedia.org/wiki/Hann_function>。此窗口可以缓存,直到数组大小发生变化,以加快处理速度。
        • 接下来,它计算每个频域数组的向前DFT:\(\mathbf{G}_a = \mathcal{F}\{src_1\}, \; \mathbf{G}_b = \mathcal{F}\{src_2\}\)其中\(\mathcal{F}\)是向前DFT。
        • 然后,它计算每个频域数组的互功率谱:\(R = \frac{ \mathbf{G}_a \mathbf{G}_b^*}{|\mathbf{G}_a \mathbf{G}_b^*|}\)
        • 接下来,通过逆DFT将互相关转换回时域:\(r = \mathcal{F}^{-1}\{R\}\)
        • 最后,它计算峰值位置,并计算峰值周围的5x5加权质心以实现亚像素精度。\((\Delta x, \Delta y) = \texttt{weightedCentroid} \{\arg \max_{(x, y)}\{r\}\}\)
        • 如果非零,则响应参数计算为r在峰值位置周围的5x5质心内的元素之和。它被归一化为最大值1(表示只有一个峰值),当有多个峰值时,值会变小。
        参数
        src1 - 源浮点数组(CV_32FC1或CV_64FC1)。
        src2 - 源浮点数组(CV_32FC1或CV_64FC1)。
        返回
        检测到的两个数组之间的相位偏移(亚像素)。参见:dft, getOptimalDFTSize, idft, mulSpectrums createHanningWindow
      • phaseCorrelateIterative

        public static Point phaseCorrelateIterative​(Mat src1,
                                                    Mat src2,
                                                    int L2size,
                                                    int maxIters)
        检测两个图像之间的平移偏移。该函数通过在相移空间中进行迭代移位细化,扩展了标准的REF: phaseCorrelate方法,从而提高了亚像素精度,如CITE: hrazdira2020iterative中所述。
        参数
        src1 - 源浮点数组(CV_32FC1或CV_64FC1)。
        src2 - 源浮点数组(CV_32FC1或CV_64FC1)。
        L2size - 迭代移位细化算法使用的相关邻域的大小。
        maxIters - 迭代细化算法将运行的最大迭代次数。
        返回
        检测到的两个数组之间的亚像素移位。参见:phaseCorrelate, dft, idft, createHanningWindow
      • phaseCorrelateIterative

        public static Point phaseCorrelateIterative​(Mat src1,
                                                    Mat src2,
                                                    int L2size)
        检测两个图像之间的平移偏移。该函数通过在相移空间中进行迭代移位细化,扩展了标准的REF: phaseCorrelate方法,从而提高了亚像素精度,如CITE: hrazdira2020iterative中所述。
        参数
        src1 - 源浮点数组(CV_32FC1或CV_64FC1)。
        src2 - 源浮点数组(CV_32FC1或CV_64FC1)。
        L2size - 迭代移位细化算法使用的相关邻域的大小。
        返回
        检测到的两个数组之间的亚像素移位。参见:phaseCorrelate, dft, idft, createHanningWindow
      • phaseCorrelateIterative

        public static Point phaseCorrelateIterative​(Mat src1,
                                                    Mat src2)
        检测两个图像之间的平移偏移。该函数通过在相移空间中进行迭代移位细化,扩展了标准的REF: phaseCorrelate方法,从而提高了亚像素精度,如CITE: hrazdira2020iterative中所述。
        参数
        src1 - 源浮点数组(CV_32FC1或CV_64FC1)。
        src2 - 源浮点数组(CV_32FC1或CV_64FC1)。
        返回
        检测到的两个数组之间的亚像素移位。参见:phaseCorrelate, dft, idft, createHanningWindow
      • createHanningWindow

        public static void createHanningWindow​(Mat dst,
                                               Size winSize,
                                               int type)
        此函数计算二维Hanning窗口系数。有关更多信息,请参见(https://en.wikipedia.org/wiki/Hann_function)和(https://en.wikipedia.org/wiki/Window_function)。下面是一个示例: // create hanning window of size 100x100 and type CV_32F Mat hann; createHanningWindow(hann, Size(100, 100), CV_32F);
        参数
        dst - 用于放置Hann系数的目标数组。
        winSize - 窗口大小规格(宽度和高度都必须大于1)。
        type - 创建的数组类型。
      • divSpectrums

        public static void divSpectrums​(Mat a,
                                        Mat b,
                                        Mat c,
                                        int flags,
                                        boolean conjB)
        执行第一个傅里叶频谱与第二个傅里叶频谱的逐元素除法。cv::divSpectrums函数执行第一个数组与第二个数组的逐元素除法。这些数组是CCS打包的或复杂的矩阵,它们是实数或复数傅里叶变换的结果。
        参数
        a - 第一个输入数组。
        b - 第二个输入数组,大小和类型与src1相同。
        c - 输出数组,大小和类型与src1相同。
        flags - 操作标志;目前唯一支持的标志是cv::DFT_ROWS,表示src1和src2的每一行都是独立的1D傅里叶频谱。如果您不想使用此标志,请添加0作为值。
        conjB - 可选标志,在乘法之前对第二个输入数组进行共轭(true)或不共轭(false)。
      • divSpectrums

        public static void divSpectrums​(Mat a,
                                        Mat b,
                                        Mat c,
                                        int flags)
        执行第一个傅里叶频谱与第二个傅里叶频谱的逐元素除法。cv::divSpectrums函数执行第一个数组与第二个数组的逐元素除法。这些数组是CCS打包的或复杂的矩阵,它们是实数或复数傅里叶变换的结果。
        参数
        a - 第一个输入数组。
        b - 第二个输入数组,大小和类型与src1相同。
        c - 输出数组,大小和类型与src1相同。
        flags - 操作标志;目前唯一支持的标志是cv::DFT_ROWS,表示src1和src2的每一行都是独立的1D傅里叶频谱。如果您不想使用此标志,请添加0作为值。或不(false)。
      • 阈值 (threshold)

        public static double threshold​(Mat src,
                                       Mat dst,
                                       double thresh,
                                       double maxval,
                                       int type)
        对每个数组元素应用固定级别的阈值。该函数对多通道数组应用固定级别的阈值。该函数通常用于从灰度图像(#compare也可用于此目的)获取双级别(二进制)图像,或用于去除噪声,即过滤掉值过小或过大的像素。该函数支持几种阈值类型。它们由type参数确定。此外,特殊值#THRESH_OTSU或#THRESH_TRIANGLE可以与上述值之一组合。在这种情况下,该函数使用Otsu算法或Triangle算法确定最佳阈值,并将其替换指定的thresh。注意:目前,Otsu方法仅为CV_8UC1和CV_16UC1图像实现,Triangle方法仅为CV_8UC1图像实现。
        参数
        src - 输入数组(多通道,CV_8U、CV_16S、CV_16U、CV_32F或CV_64F)。
        dst - 输出数组,大小、类型和通道数与src相同。
        thresh - 阈值。
        maxval - 用于#THRESH_BINARY和#THRESH_BINARY_INV阈值类型的最大值。
        type - 阈值类型(请参见#ThresholdTypes)。
        返回
        当使用Otsu或Triangle方法时计算出的阈值。参见:thresholdWithMask, adaptiveThreshold, findContours, compare, min, max
      • thresholdWithMask

        public static double thresholdWithMask​(Mat src,
                                               Mat dst,
                                               Mat mask,
                                               double thresh,
                                               double maxval,
                                               int type)
        与#threshold相同,但具有可选的掩码。注意:如果掩码为空,#thresholdWithMask等效于#threshold。如果掩码非空,则dst*必须*与src具有相同的大小和类型,以便离群像素保持不变。
        参数
        src - 输入数组(多通道,8位或32位浮点)。
        dst - 输出数组,大小、类型和通道数与src相同。
        mask - 可选掩码(与src大小相同,8位)。
        thresh - 阈值。
        maxval - 用于#THRESH_BINARY和#THRESH_BINARY_INV阈值类型的最大值。
        type - 阈值类型(请参见#ThresholdTypes)。
        返回
        当使用Otsu或Triangle方法时计算出的阈值。参见:threshold, adaptiveThreshold, findContours, compare, min, max
      • adaptiveThreshold

        public static void adaptiveThreshold​(Mat src,
                                             Mat dst,
                                             double maxValue,
                                             int adaptiveMethod,
                                             int thresholdType,
                                             int blockSize,
                                             double C)
        对数组应用自适应阈值。该函数根据以下公式将灰度图像转换为二值图像:
        • THRESH_BINARY \(dst(x,y) = \fork{\texttt{maxValue}}{if \(src(x,y) > T(x,y)\)}{0}{otherwise}\)
        • THRESH_BINARY_INV \(dst(x,y) = \fork{0}{if \(src(x,y) > T(x,y)\)}{\texttt{maxValue}}{otherwise}\)其中\(T(x,y)\)是为每个像素单独计算的阈值(请参阅adaptiveMethod参数)。
        该函数可以原地处理图像。
        参数
        src - 源8位单通道图像。
        dst - 目标图像,大小和类型与src相同。
        maxValue - 当条件满足时分配给像素的非零值。
        adaptiveMethod - 要使用的自适应阈值算法,请参见#AdaptiveThresholdTypes。使用#BORDER_REPLICATE | #BORDER_ISOLATED来处理边界。
        thresholdType - 阈值类型,必须是#THRESH_BINARY或#THRESH_BINARY_INV,请参见#ThresholdTypes。
        blockSize - 用于计算像素阈值的像素邻域大小:3、5、7等。
        C - 从平均值或加权平均值中减去的常数(详见下文)。通常为正,但也可以为零或负。参见:threshold, blur, GaussianBlur
      • pyrDown

        public static void pyrDown​(Mat src,
                                   Mat dst,
                                   Size dstsize,
                                   int borderType)
        模糊图像并对其进行降采样。默认情况下,输出图像的大小计算为Size((src.cols+1)/2, (src.rows+1)/2),但在任何情况下,都应满足以下条件:\(\begin{array}{l} | \texttt{dstsize.width} *2-src.cols| \leq 2 \\ | \texttt{dstsize.height} *2-src.rows| \leq 2 \end{array}\)该函数执行高斯金字塔构建的降采样步骤。首先,它将源图像与以下核进行卷积:\(\frac{1}{256} \begin{bmatrix} 1 & 4 & 6 & 4 & 1 \\ 4 & 16 & 24 & 16 & 4 \\ 6 & 24 & 36 & 24 & 6 \\ 4 & 16 & 24 & 16 & 4 \\ 1 & 4 & 6 & 4 & 1 \end{bmatrix}\)然后,它通过去除偶数行和列来对图像进行降采样。
        参数
        src - 输入图像。
        dst - 输出图像;它具有指定的大小和与src相同的类型。
        dstsize - 输出图像的大小。
        borderType - 像素外插方法,请参见#BorderTypes(不支持#BORDER_CONSTANT)。
      • pyrDown

        public static void pyrDown​(Mat src,
                                   Mat dst,
                                   Size dstsize)
        模糊图像并对其进行降采样。默认情况下,输出图像的大小计算为Size((src.cols+1)/2, (src.rows+1)/2),但在任何情况下,都应满足以下条件:\(\begin{array}{l} | \texttt{dstsize.width} *2-src.cols| \leq 2 \\ | \texttt{dstsize.height} *2-src.rows| \leq 2 \end{array}\)该函数执行高斯金字塔构建的降采样步骤。首先,它将源图像与以下核进行卷积:\(\frac{1}{256} \begin{bmatrix} 1 & 4 & 6 & 4 & 1 \\ 4 & 16 & 24 & 16 & 4 \\ 6 & 24 & 36 & 24 & 6 \\ 4 & 16 & 24 & 16 & 4 \\ 1 & 4 & 6 & 4 & 1 \end{bmatrix}\)然后,它通过去除偶数行和列来对图像进行降采样。
        参数
        src - 输入图像。
        dst - 输出图像;它具有指定的大小和与src相同的类型。
        dstsize - 输出图像的大小。
      • pyrDown

        public static void pyrDown​(Mat src,
                                   Mat dst)
        模糊图像并对其进行降采样。默认情况下,输出图像的大小计算为Size((src.cols+1)/2, (src.rows+1)/2),但在任何情况下,都应满足以下条件:\(\begin{array}{l} | \texttt{dstsize.width} *2-src.cols| \leq 2 \\ | \texttt{dstsize.height} *2-src.rows| \leq 2 \end{array}\)该函数执行高斯金字塔构建的降采样步骤。首先,它将源图像与以下核进行卷积:\(\frac{1}{256} \begin{bmatrix} 1 & 4 & 6 & 4 & 1 \\ 4 & 16 & 24 & 16 & 4 \\ 6 & 24 & 36 & 24 & 6 \\ 4 & 16 & 24 & 16 & 4 \\ 1 & 4 & 6 & 4 & 1 \end{bmatrix}\)然后,它通过去除偶数行和列来对图像进行降采样。
        参数
        src - 输入图像。
        dst - 输出图像;它具有指定的大小和与src相同的类型。
      • pyrUp

        public static void pyrUp​(Mat src,
                                 Mat dst,
                                 Size dstsize,
                                 int borderType)
        对图像进行上采样然后模糊。默认情况下,输出图像的大小计算为Size(src.cols\*2, (src.rows\*2),但在任何情况下,都应满足以下条件:\(\begin{array}{l} | \texttt{dstsize.width} -src.cols*2| \leq ( \texttt{dstsize.width} \mod 2) \\ | \texttt{dstsize.height} -src.rows*2| \leq ( \texttt{dstsize.height} \mod 2) \end{array}\)该函数执行高斯金字塔构建的上采样步骤,但实际上可用于构建拉普拉斯金字塔。首先,它通过插入零行和零列来上采样源图像,然后将结果与pyrDown中相同的核(乘以4)进行卷积。
        参数
        src - 输入图像。
        dst - 输出图像。它具有指定的大小和与src相同的类型。
        dstsize - 输出图像的大小。
        borderType - 像素外插方法,请参见#BorderTypes(仅支持#BORDER_DEFAULT)。
      • pyrUp

        public static void pyrUp​(Mat src,
                                 Mat dst,
                                 Size dstsize)
        对图像进行上采样然后模糊。默认情况下,输出图像的大小计算为Size(src.cols\*2, (src.rows\*2),但在任何情况下,都应满足以下条件:\(\begin{array}{l} | \texttt{dstsize.width} -src.cols*2| \leq ( \texttt{dstsize.width} \mod 2) \\ | \texttt{dstsize.height} -src.rows*2| \leq ( \texttt{dstsize.height} \mod 2) \end{array}\)该函数执行高斯金字塔构建的上采样步骤,但实际上可用于构建拉普拉斯金字塔。首先,它通过插入零行和零列来上采样源图像,然后将结果与pyrDown中相同的核(乘以4)进行卷积。
        参数
        src - 输入图像。
        dst - 输出图像。它具有指定的大小和与src相同的类型。
        dstsize - 输出图像的大小。
      • pyrUp

        public static void pyrUp​(Mat src,
                                 Mat dst)
        对图像进行上采样然后模糊。默认情况下,输出图像的大小计算为Size(src.cols\*2, (src.rows\*2),但在任何情况下,都应满足以下条件:\(\begin{array}{l} | \texttt{dstsize.width} -src.cols*2| \leq ( \texttt{dstsize.width} \mod 2) \\ | \texttt{dstsize.height} -src.rows*2| \leq ( \texttt{dstsize.height} \mod 2) \end{array}\)该函数执行高斯金字塔构建的上采样步骤,但实际上可用于构建拉普拉斯金字塔。首先,它通过插入零行和零列来上采样源图像,然后将结果与pyrDown中相同的核(乘以4)进行卷积。
        参数
        src - 输入图像。
        dst - 输出图像。它具有指定的大小和与src相同的类型。
      • calcHist

        public static void calcHist​(java.util.List<Mat> images,
                                    MatOfInt channels,
                                    Mat mask,
                                    Mat hist,
                                    MatOfInt histSize,
                                    MatOfFloat ranges,
                                    boolean accumulate)
        此变体仅支持均匀直方图。ranges参数要么是空向量,要么是histSize.size()*2个元素的展平向量(histSize.size()个元素对)。每对的第一个和第二个元素指定下限和上限。
        参数
        images - 自动生成。
        channels - 自动生成。
        mask - 自动生成
        hist - 自动生成。
        histSize - 自动生成。
        ranges - 自动生成。
        accumulate - 自动生成。
      • calcHist

        public static void calcHist​(java.util.List<Mat> images,
                                    MatOfInt channels,
                                    Mat mask,
                                    Mat hist,
                                    MatOfInt histSize,
                                    MatOfFloat ranges)
        此变体仅支持均匀直方图。ranges参数要么是空向量,要么是histSize.size()*2个元素的展平向量(histSize.size()个元素对)。每对的第一个和第二个元素指定下限和上限。
        参数
        images - 自动生成。
        channels - 自动生成。
        mask - 自动生成
        hist - 自动生成。
        histSize - 自动生成。
        ranges - 自动生成。
      • calcBackProject

        public static void calcBackProject​(java.util.List<Mat> images,
                                           MatOfInt channels,
                                           Mat hist,
                                           Mat dst,
                                           MatOfFloat ranges,
                                           double scale)
      • compareHist

        public static double compareHist​(Mat H1,
                                         Mat H2,
                                         int method)
        比较两个直方图。cv::compareHist函数使用指定的_方法比较两个密集或两个稀疏直方图。该函数返回\(d(H_1, H_2)\)。虽然该函数适用于1维、2维、3维密集直方图,但它可能不适用于高维稀疏直方图。在这些直方图中,由于混叠和采样问题,非零直方图箱的坐标可能会略有偏移。要比较此类直方图或更通用的加权点稀疏配置,请考虑使用#EMD函数。
        参数
        H1 - 第一个比较的直方图。
        H2 - 第二个比较的直方图,大小与H1相同。
        method - 比较方法,请参见#HistCompMethods。
        返回
        自动生成
      • equalizeHist

        public static void equalizeHist​(Mat src,
                                        Mat dst)
        均衡灰度图像的直方图。该函数使用以下算法均衡输入图像的直方图:
        • 计算源图像 src 的直方图 \(H\)。
        • 归一化直方图,使直方图各箱之和为 255。
        • 计算直方图的积分:\(H'_i = \sum _{0 \le j < i} H(j)\)
        • 使用 \(H'\) 作为查找表变换图像:\(\texttt{dst}(x,y) = H'(\texttt{src}(x,y))\)
        该算法归一化亮度并增加图像对比度。
        参数
        src - 源8位单通道图像。
        dst - 与 src 相同大小和类型的目标图像。 (dst - Destination image of the same size and type as src .)
      • createCLAHE

        public static CLAHE createCLAHE​(double clipLimit,
                                        Size tileGridSize)
        创建一个 cv::CLAHE 类的智能指针并初始化它。
        参数
        clipLimit - 对比度限制的阈值。
        tileGridSize - 直方图均衡的网格大小。输入图像将被分成大小相等的矩形图块。tileGridSize定义了行和列中的图块数量。
        返回
        自动生成
      • createCLAHE

        public static CLAHE createCLAHE​(double clipLimit)
        创建一个 cv::CLAHE 类的智能指针并初始化它。
        参数
        clipLimit - 对比度限制的阈值。大小相等的矩形图块。tileGridSize定义了行和列中的图块数量。
        返回
        自动生成
      • createCLAHE

        public static CLAHE createCLAHE()
        创建一个cv::CLAHE类智能指针并初始化它。大小相等的矩形图块。tileGridSize定义了行和列中的图块数量。
        返回
        自动生成
      • EMD

        public static float EMD​(Mat signature1,
                                Mat signature2,
                                int distType,
                                Mat cost,
                                Mat flow)
        计算两个加权点配置之间的“最小工作”距离。该函数计算两个加权点配置之间的地球移动距离和/或距离的下界。描述在CITE: RubnerSept98, CITE: Rubner2000中的应用之一是用于图像检索的多维直方图比较。EMD是一个运输问题,使用某些修改后的单纯形算法来解决,因此在最坏情况下的复杂度是指数级的,尽管平均而言它要快得多。在真实度量的情况下,下界甚至可以更快地计算(使用线性时间算法),并且可以用来粗略确定两个签名是否足够远,以至于它们不能与同一个对象相关联。
        参数
        signature1 - 第一个签名,一个\(\texttt{size1}\times \texttt{dims}+1\)的浮点矩阵。每一行存储点权重后跟点坐标。如果使用了用户定义的成本矩阵,则允许该矩阵只有一列(仅权重)。权重必须是非负的,并且至少有一个非零值。
        signature2 - 第二个签名,格式与signature1相同,尽管行数可能不同。总权重可能不同。在这种情况下,会向signature1或signature2添加一个额外的“虚拟”点。权重必须是非负的,并且至少有一个非零值。
        distType - 使用的度量。请参阅#DistanceTypes。
        cost - 用户定义的\(\texttt{size1}\times \texttt{size2}\)成本矩阵。此外,如果使用成本矩阵,则无法计算下界lowerBound,因为它需要度量函数。签名是质心之间的距离。如果使用了用户定义的成本矩阵,总权重不相等,或者签名仅包含权重(签名矩阵只有一列),则无法计算下界。您*必须*初始化\*lowerBound。如果计算出的质心距离大于或等于\*lowerBound(这意味着签名足够远),则函数不计算EMD。在任何情况下,返回时\*lowerBound都会设置为计算出的质心距离。因此,如果您想同时计算质心距离和EMD,则应将\*lowerBound设置为0。
        flow - 结果\(\texttt{size1} \times \texttt{size2}\)流矩阵:\(\texttt{flow}_{i,j}\)是从signature1的第i个点到signature2的第j个点的流。
        返回
        自动生成
      • EMD

        public static float EMD​(Mat signature1,
                                Mat signature2,
                                int distType,
                                Mat cost)
        计算两个加权点配置之间的“最小工作”距离。该函数计算两个加权点配置之间的地球移动距离和/或距离的下界。描述在CITE: RubnerSept98, CITE: Rubner2000中的应用之一是用于图像检索的多维直方图比较。EMD是一个运输问题,使用某些修改后的单纯形算法来解决,因此在最坏情况下的复杂度是指数级的,尽管平均而言它要快得多。在真实度量的情况下,下界甚至可以更快地计算(使用线性时间算法),并且可以用来粗略确定两个签名是否足够远,以至于它们不能与同一个对象相关联。
        参数
        signature1 - 第一个签名,一个\(\texttt{size1}\times \texttt{dims}+1\)的浮点矩阵。每一行存储点权重后跟点坐标。如果使用了用户定义的成本矩阵,则允许该矩阵只有一列(仅权重)。权重必须是非负的,并且至少有一个非零值。
        signature2 - 第二个签名,格式与signature1相同,尽管行数可能不同。总权重可能不同。在这种情况下,会向signature1或signature2添加一个额外的“虚拟”点。权重必须是非负的,并且至少有一个非零值。
        distType - 使用的度量。请参阅#DistanceTypes。
        cost - 用户定义的\(\texttt{size1}\times \texttt{size2}\)成本矩阵。此外,如果使用成本矩阵,则无法计算下界lowerBound,因为它需要度量函数。签名是质心之间的距离。如果使用了用户定义的成本矩阵,总权重不相等,或者签名仅包含权重(签名矩阵只有一列),则无法计算下界。您*必须*初始化\*lowerBound。如果计算出的质心距离大于或等于\*lowerBound(这意味着签名足够远),则函数不计算EMD。在任何情况下,返回时\*lowerBound都会设置为计算出的质心距离。因此,如果您想同时计算质心距离和EMD,则应将\*lowerBound设置为0。从signature1的第i个点到signature2的第j个点的流。
        返回
        自动生成
      • EMD

        public static float EMD​(Mat signature1,
                                Mat signature2,
                                int distType)
        计算两个加权点配置之间的“最小工作”距离。该函数计算两个加权点配置之间的地球移动距离和/或距离的下界。描述在CITE: RubnerSept98, CITE: Rubner2000中的应用之一是用于图像检索的多维直方图比较。EMD是一个运输问题,使用某些修改后的单纯形算法来解决,因此在最坏情况下的复杂度是指数级的,尽管平均而言它要快得多。在真实度量的情况下,下界甚至可以更快地计算(使用线性时间算法),并且可以用来粗略确定两个签名是否足够远,以至于它们不能与同一个对象相关联。
        参数
        signature1 - 第一个签名,一个\(\texttt{size1}\times \texttt{dims}+1\)的浮点矩阵。每一行存储点权重后跟点坐标。如果使用了用户定义的成本矩阵,则允许该矩阵只有一列(仅权重)。权重必须是非负的,并且至少有一个非零值。
        signature2 - 第二个签名,格式与signature1相同,尽管行数可能不同。总权重可能不同。在这种情况下,会向signature1或signature2添加一个额外的“虚拟”点。权重必须是非负的,并且至少有一个非零值。
        distType - 使用的度量。请参阅#DistanceTypes。如果使用成本矩阵,则无法计算下界lowerBound,因为它需要度量函数。签名是质心之间的距离。如果使用了用户定义的成本矩阵,总权重不相等,或者签名仅包含权重(签名矩阵只有一列),则无法计算下界。您*必须*初始化\*lowerBound。如果计算出的质心距离大于或等于\*lowerBound(这意味着签名足够远),则函数不计算EMD。在任何情况下,返回时\*lowerBound都会设置为计算出的质心距离。因此,如果您想同时计算质心距离和EMD,则应将\*lowerBound设置为0。从signature1的第i个点到signature2的第j个点的流。
        返回
        自动生成
      • watershed

        public static void watershed​(Mat image,
                                     Mat markers)
        使用分水岭算法执行基于标记的图像分割。该函数实现了分水岭算法的一种变体,即非参数的基于标记的分割算法,如CITE: Meyer92中所述。在将图像传递给函数之前,您必须粗略地勾画出图像标记中所需的区域,其索引为正(>0)。因此,每个区域表示为一个或多个连通分量,其像素值为1、2、3等。可以使用#findContours和#drawContours(请参阅watershed.cpp演示)从二进制掩码中检索此类标记。这些标记是未来图像区域的“种子”。标记中所有其他像素,其与已勾画区域的关系是未知的,并且应由算法定义,应设置为0。在函数输出中,标记中的每个像素都被设置为“种子”分量的值,或者在区域边界处设置为-1。注意:两个相邻的连通分量不一定被分水岭边界(-1像素)分开;例如,它们可以在传递给函数的初始标记图像中接触。
        参数
        image - 输入8位3通道图像。
        markers - 输入/输出32位单通道图像(映射)的标记。它的大小应与image相同。参见:findContours
      • pyrMeanShiftFiltering

        public static void pyrMeanShiftFiltering​(Mat src,
                                                 Mat dst,
                                                 double sp,
                                                 double sr,
                                                 int maxLevel,
                                                 TermCriteria termcrit)
        执行均值漂移分割图像的初始步骤。该函数实现了均值漂移分割的滤波阶段,即函数的输出是滤波后的“海报化”图像,颜色渐变和细粒纹理被展平。在输入图像(或向下采样输入图像,见下文)的每个像素(X,Y)处,函数执行均值漂移迭代,即考虑输入图像(或向下采样输入图像)的(X,Y)邻域在联合空间-颜色超空间中:\((x,y): X- \texttt{sp} \le x \le X+ \texttt{sp} , Y- \texttt{sp} \le y \le Y+ \texttt{sp} , ||(R,G,B)-(r,g,b)|| \le \texttt{sr}\)其中(R,G,B)和(r,g,b)分别是(X,Y)和(x,y)处的颜色分量向量(尽管算法不依赖于使用的颜色空间,因此可以使用任何三分量颜色空间代替)。在邻域上找到平均空间值(X',Y')和平均颜色向量(R',G',B'),它们在下一次迭代中充当邻域中心:\((X,Y)~(X',Y'), (R,G,B)~(R',G',B').\)迭代结束后,初始像素(即迭代开始的像素)的颜色分量被设置为最终值(最后一次迭代的平均颜色):\(I(X,Y) <- (R*,G*,B*)\)当maxLevel > 0时,构建maxLevel+1层的多分辨率高斯金字塔,并先在最小层上运行上述过程。之后,结果会传播到较大的层,并且迭代仅在层颜色与金字塔的低分辨率层颜色相差大于sr的像素上再次运行。这使得颜色区域的边界更清晰。请注意,结果实际上将与在整个原始图像上运行均值漂移过程获得的结果不同(即,当maxLevel==0时)。
        参数
        src - 源8位3通道图像。
        dst - 目标图像,格式和大小与源图像相同。
        sp - 空间窗口半径。
        sr - 颜色窗口半径。
        maxLevel - 分割的金字塔的最大层数。
        termcrit - 终止条件:何时停止均值漂移迭代。
      • pyrMeanShiftFiltering

        public static void pyrMeanShiftFiltering​(Mat src,
                                                 Mat dst,
                                                 double sp,
                                                 double sr,
                                                 int maxLevel)
        执行均值漂移分割图像的初始步骤。该函数实现了均值漂移分割的滤波阶段,即函数的输出是滤波后的“海报化”图像,颜色渐变和细粒纹理被展平。在输入图像(或向下采样输入图像,见下文)的每个像素(X,Y)处,函数执行均值漂移迭代,即考虑输入图像(或向下采样输入图像)的(X,Y)邻域在联合空间-颜色超空间中:\((x,y): X- \texttt{sp} \le x \le X+ \texttt{sp} , Y- \texttt{sp} \le y \le Y+ \texttt{sp} , ||(R,G,B)-(r,g,b)|| \le \texttt{sr}\)其中(R,G,B)和(r,g,b)分别是(X,Y)和(x,y)处的颜色分量向量(尽管算法不依赖于使用的颜色空间,因此可以使用任何三分量颜色空间代替)。在邻域上找到平均空间值(X',Y')和平均颜色向量(R',G',B'),它们在下一次迭代中充当邻域中心:\((X,Y)~(X',Y'), (R,G,B)~(R',G',B').\)迭代结束后,初始像素(即迭代开始的像素)的颜色分量被设置为最终值(最后一次迭代的平均颜色):\(I(X,Y) <- (R*,G*,B*)\)当maxLevel > 0时,构建maxLevel+1层的多分辨率高斯金字塔,并先在最小层上运行上述过程。之后,结果会传播到较大的层,并且迭代仅在层颜色与金字塔的低分辨率层颜色相差大于sr的像素上再次运行。这使得颜色区域的边界更清晰。请注意,结果实际上将与在整个原始图像上运行均值漂移过程获得的结果不同(即,当maxLevel==0时)。
        参数
        src - 源8位3通道图像。
        dst - 目标图像,格式和大小与源图像相同。
        sp - 空间窗口半径。
        sr - 颜色窗口半径。
        maxLevel - 分割的金字塔的最大层数。
      • pyrMeanShiftFiltering

        public static void pyrMeanShiftFiltering​(Mat src,
                                                 Mat dst,
                                                 double sp,
                                                 double sr)
        执行均值漂移分割图像的初始步骤。该函数实现了均值漂移分割的滤波阶段,即函数的输出是滤波后的“海报化”图像,颜色渐变和细粒纹理被展平。在输入图像(或向下采样输入图像,见下文)的每个像素(X,Y)处,函数执行均值漂移迭代,即考虑输入图像(或向下采样输入图像)的(X,Y)邻域在联合空间-颜色超空间中:\((x,y): X- \texttt{sp} \le x \le X+ \texttt{sp} , Y- \texttt{sp} \le y \le Y+ \texttt{sp} , ||(R,G,B)-(r,g,b)|| \le \texttt{sr}\)其中(R,G,B)和(r,g,b)分别是(X,Y)和(x,y)处的颜色分量向量(尽管算法不依赖于使用的颜色空间,因此可以使用任何三分量颜色空间代替)。在邻域上找到平均空间值(X',Y')和平均颜色向量(R',G',B'),它们在下一次迭代中充当邻域中心:\((X,Y)~(X',Y'), (R,G,B)~(R',G',B').\)迭代结束后,初始像素(即迭代开始的像素)的颜色分量被设置为最终值(最后一次迭代的平均颜色):\(I(X,Y) <- (R*,G*,B*)\)当maxLevel > 0时,构建maxLevel+1层的多分辨率高斯金字塔,并先在最小层上运行上述过程。之后,结果会传播到较大的层,并且迭代仅在层颜色与金字塔的低分辨率层颜色相差大于sr的像素上再次运行。这使得颜色区域的边界更清晰。请注意,结果实际上将与在整个原始图像上运行均值漂移过程获得的结果不同(即,当maxLevel==0时)。
        参数
        src - 源8位3通道图像。
        dst - 目标图像,格式和大小与源图像相同。
        sp - 空间窗口半径。
        sr - 颜色窗口半径。
      • grabCut

        public static void grabCut​(Mat img,
                                   Mat mask,
                                   Rect rect,
                                   Mat bgdModel,
                                   Mat fgdModel,
                                   int iterCount,
                                   int mode)
        运行GrabCut算法。该函数实现了[GrabCut图像分割算法](https://en.wikipedia.org/wiki/GrabCut)。
        参数
        img - 输入8位3通道图像。
        mask - 输入/输出8位单通道掩码。当模式设置为#GC_INIT_WITH_RECT时,函数会初始化掩码。其元素可以具有#GrabCutClasses之一。
        rect - 包含分割对象的ROI。ROI外部的像素被标记为“明显的背景”。当mode==#GC_INIT_WITH_RECT时,才使用此参数。
        bgdModel - 背景模型的临时数组。在处理同一图像时不要修改它。
        fgdModel - 前景模型的临时数组。在处理同一图像时不要修改它。
        iterCount - 算法在返回结果之前应进行的迭代次数。请注意,可以通过进一步调用mode==#GC_INIT_WITH_MASK或GC_EVAL来细化结果。
        mode - 操作模式,可以是#GrabCutModes之一。
      • grabCut

        public static void grabCut​(Mat img,
                                   Mat mask,
                                   Rect rect,
                                   Mat bgdModel,
                                   Mat fgdModel,
                                   int iterCount)
        运行GrabCut算法。该函数实现了[GrabCut图像分割算法](https://en.wikipedia.org/wiki/GrabCut)。
        参数
        img - 输入8位3通道图像。
        mask - 输入/输出8位单通道掩码。当模式设置为#GC_INIT_WITH_RECT时,函数会初始化掩码。其元素可以具有#GrabCutClasses之一。
        rect - 包含分割对象的ROI。ROI外部的像素被标记为“明显的背景”。当mode==#GC_INIT_WITH_RECT时,才使用此参数。
        bgdModel - 背景模型的临时数组。在处理同一图像时不要修改它。
        fgdModel - 前景模型的临时数组。在处理同一图像时不要修改它。
        iterCount - 算法在返回结果之前应进行的迭代次数。请注意,可以通过进一步调用mode==#GC_INIT_WITH_MASK或GC_EVAL来细化结果。
      • distanceTransformWithLabels

        public static void distanceTransformWithLabels​(Mat src,
                                                       Mat dst,
                                                       Mat labels,
                                                       int distanceType,
                                                       int maskSize,
                                                       int labelType)
        计算源图像每个像素到最近零像素的距离。cv::distanceTransform函数计算每个二值图像像素到最近零像素的近似或精确距离。对于零图像像素,距离显然为零。当maskSize == #DIST_MASK_PRECISE且distanceType == #DIST_L2时,函数运行CITE: Felzenszwalb04中描述的算法。该算法使用TBB库进行并行化。在其他情况下,使用CITE: Borgefors86算法。这意味着对于一个像素,函数找到到最近的零像素的最短路径,该路径由基本位移组成:水平、垂直、对角线或骑士步(后者适用于\(5\times 5\)掩码)。总距离计算为这些基本距离的总和。由于距离函数应该是对称的,所有水平和垂直位移必须具有相同的成本(表示为a),所有对角线位移必须具有相同的成本(表示为b),所有骑士步都必须具有相同的成本(表示为c)。对于#DIST_C和#DIST_L1类型,距离是精确计算的,而对于#DIST_L2(欧氏距离),距离只能以相对误差计算(\(5\times 5\)掩码提供更精确的结果)。对于abc,OpenCV使用原始论文中建议的值。
        • DIST_L1: a = 1, b = 2
        • DIST_L2
          • 3 x 3: a=0.955, b=1.3693
          • 5 x 5: a=1, b=1.4, c=2.1969
        • DIST_C: a = 1, b = 1
        通常,为了快速、粗略的距离估计#DIST_L2,使用\(3\times 3\)掩码。为了更精确的距离估计#DIST_L2,使用\(5\times 5\)掩码或精确算法。请注意,精确算法和近似算法都与像素数量呈线性关系。此函数变体不仅计算每个像素\((x, y)\)的最小距离,还识别最近的由零像素组成的连通分量(labelType==#DIST_LABEL_CCOMP)或最近的零像素(labelType==#DIST_LABEL_PIXEL)。组件/像素的索引存储在labels(x, y)中。当labelType==#DIST_LABEL_CCOMP时,函数会自动查找输入图像中零像素的连通分量,并用不同的标签标记它们。当labelType==#DIST_LABEL_PIXEL时,函数会扫描输入图像并将所有零像素标记为不同的标签。在此模式下,复杂度仍然是线性的。也就是说,该函数提供了一种非常快速的方法来计算二值图像的Voronoi图。目前,第二种变体只能使用近似距离变换算法,即不支持maskSize=#DIST_MASK_PRECISE。
        参数
        src - 8位单通道(二值)源图像。
        dst - 输出图像,包含计算出的距离。它是一个8位或32位浮点单通道图像,大小与src相同。
        labels - 输出标签(离散Voronoi图)二维数组。类型为CV_32SC1,大小与src相同。
        distanceType - 距离类型,请参见#DistanceTypes。
        maskSize - 距离变换掩码的大小,请参见#DistanceTransformMasks。此变体不支持#DIST_MASK_PRECISE。对于#DIST_L1或#DIST_C距离类型,参数被强制为3,因为\(3\times 3\)掩码得到的结果与\(5\times 5\)或任何更大的孔径相同。
        labelType - 要构建的标签数组的类型,请参见#DistanceTransformLabelTypes。
      • distanceTransformWithLabels

        public static void distanceTransformWithLabels​(Mat src,
                                                       Mat dst,
                                                       Mat labels,
                                                       int distanceType,
                                                       int maskSize)
        计算源图像每个像素到最近零像素的距离。cv::distanceTransform函数计算每个二值图像像素到最近零像素的近似或精确距离。对于零图像像素,距离显然为零。当maskSize == #DIST_MASK_PRECISE且distanceType == #DIST_L2时,函数运行CITE: Felzenszwalb04中描述的算法。该算法使用TBB库进行并行化。在其他情况下,使用CITE: Borgefors86算法。这意味着对于一个像素,函数找到到最近的零像素的最短路径,该路径由基本位移组成:水平、垂直、对角线或骑士步(后者适用于\(5\times 5\)掩码)。总距离计算为这些基本距离的总和。由于距离函数应该是对称的,所有水平和垂直位移必须具有相同的成本(表示为a),所有对角线位移必须具有相同的成本(表示为b),所有骑士步都必须具有相同的成本(表示为c)。对于#DIST_C和#DIST_L1类型,距离是精确计算的,而对于#DIST_L2(欧氏距离),距离只能以相对误差计算(\(5\times 5\)掩码提供更精确的结果)。对于abc,OpenCV使用原始论文中建议的值。
        • DIST_L1: a = 1, b = 2
        • DIST_L2
          • 3 x 3: a=0.955, b=1.3693
          • 5 x 5: a=1, b=1.4, c=2.1969
        • DIST_C: a = 1, b = 1
        通常,为了快速、粗略的距离估计#DIST_L2,使用\(3\times 3\)掩码。为了更精确的距离估计#DIST_L2,使用\(5\times 5\)掩码或精确算法。请注意,精确算法和近似算法都与像素数量呈线性关系。此函数变体不仅计算每个像素\((x, y)\)的最小距离,还识别最近的由零像素组成的连通分量(labelType==#DIST_LABEL_CCOMP)或最近的零像素(labelType==#DIST_LABEL_PIXEL)。组件/像素的索引存储在labels(x, y)中。当labelType==#DIST_LABEL_CCOMP时,函数会自动查找输入图像中零像素的连通分量,并用不同的标签标记它们。当labelType==#DIST_LABEL_PIXEL时,函数会扫描输入图像并将所有零像素标记为不同的标签。在此模式下,复杂度仍然是线性的。也就是说,该函数提供了一种非常快速的方法来计算二值图像的Voronoi图。目前,第二种变体只能使用近似距离变换算法,即不支持maskSize=#DIST_MASK_PRECISE。
        参数
        src - 8位单通道(二值)源图像。
        dst - 输出图像,包含计算出的距离。它是一个8位或32位浮点单通道图像,大小与src相同。
        labels - 输出标签(离散Voronoi图)二维数组。类型为CV_32SC1,大小与src相同。
        distanceType - 距离类型,请参见#DistanceTypes。
        maskSize - 距离变换掩码的大小,请参见#DistanceTransformMasks。此变体不支持#DIST_MASK_PRECISE。对于#DIST_L1或#DIST_C距离类型,参数被强制为3,因为\(3\times 3\)掩码得到的结果与\(5\times 5\)或任何更大的孔径相同。
      • distanceTransform

        public static void distanceTransform​(Mat src,
                                             Mat dst,
                                             int distanceType,
                                             int maskSize,
                                             int dstType)
        参数
        src - 8位单通道(二值)源图像。
        dst - 输出图像,包含计算出的距离。它是一个8位或32位浮点单通道图像,大小与src相同。
        distanceType - 距离类型,请参见#DistanceTypes。
        maskSize - 距离变换掩码的大小,请参见#DistanceTransformMasks。对于#DIST_L1或#DIST_C距离类型,参数被强制为3,因为\(3\times 3\)掩码得到的结果与\(5\times 5\)或任何更大的孔径相同。
        dstType - 输出图像的类型。可以是CV_8U或CV_32F。CV_8U类型只能用于函数的第一个变体和distanceType == #DIST_L1。
      • distanceTransform

        public static void distanceTransform​(Mat src,
                                             Mat dst,
                                             int distanceType,
                                             int maskSize)
        参数
        src - 8位单通道(二值)源图像。
        dst - 输出图像,包含计算出的距离。它是一个8位或32位浮点单通道图像,大小与src相同。
        distanceType - 距离类型,请参见#DistanceTypes。
        maskSize - 距离变换掩码的大小,请参见#DistanceTransformMasks。对于#DIST_L1或#DIST_C距离类型,参数被强制为3,因为\(3\times 3\)掩码得到的结果与\(5\times 5\)或任何更大的孔径相同。函数的第一个变体和distanceType == #DIST_L1。
      • floodFill

        public static int floodFill​(Mat image,
                                    Mat mask,
                                    Point seedPoint,
                                    Scalar newVal,
                                    Rect rect,
                                    Scalar loDiff,
                                    Scalar upDiff,
                                    int flags)
        使用给定颜色填充连通分量。cv::floodFill函数从种子点开始,使用指定的颜色填充连通分量。连通性由邻近像素的颜色/亮度接近度决定。像素\((x,y)\)被视为属于重绘域,如果
        • 对于灰度图像和浮动范围 \(\texttt{src} (x',y')- \texttt{loDiff} \leq \texttt{src} (x,y) \leq \texttt{src} (x',y')+ \texttt{upDiff}\)
        • 对于灰度图像和固定范围 \(\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)- \texttt{loDiff} \leq \texttt{src} (x,y) \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)+ \texttt{upDiff}\)
        • 对于彩色图像和浮动范围 \(\texttt{src} (x',y')_r- \texttt{loDiff} _r \leq \texttt{src} (x,y)_r \leq \texttt{src} (x',y')_r+ \texttt{upDiff} _r,\) \(\texttt{src} (x',y')_g- \texttt{loDiff} _g \leq \texttt{src} (x,y)_g \leq \texttt{src} (x',y')_g+ \texttt{upDiff} _g\)和\(\texttt{src} (x',y')_b- \texttt{loDiff} _b \leq \texttt{src} (x,y)_b \leq \texttt{src} (x',y')_b+ \texttt{upDiff} _b\)
        • 对于彩色图像和固定范围 \(\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_r- \texttt{loDiff} _r \leq \texttt{src} (x,y)_r \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_r+ \texttt{upDiff} _r,\) \(\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_g- \texttt{loDiff} _g \leq \texttt{src} (x,y)_g \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_g+ \texttt{upDiff} _g\)和\(\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_b- \texttt{loDiff} _b \leq \texttt{src} (x,y)_b \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_b+ \texttt{upDiff} _b\)
        其中\(src(x',y')\)是已知属于该组件的像素邻居之一的值。也就是说,要添加到连通组件中的像素,其颜色/亮度必须足够接近
        • 在浮动范围的情况下,属于连通组件的邻居之一的颜色/亮度。
        • 在固定范围的情况下,种子点的颜色/亮度。
        使用这些函数可以原地标记连通分量为指定颜色,或构建掩码然后提取轮廓,或将区域复制到另一图像等。
        参数
        image - 输入/输出1通道或3通道、8位或浮点图像。除非设置了#FLOODFILL_MASK_ONLY标志,否则该函数将修改它。请参阅下文详情。
        mask - 操作掩码,应为单通道8位图像,比image宽2像素,高2像素。如果传递空Mat,它将被自动创建。由于这是一个输入和输出参数,您必须负责初始化它。填充不能穿过输入掩码中的非零像素。例如,边缘检测器的输出可以用作停止在边缘填充的掩码。输出时,掩码中与图像中填充像素对应的像素设置为1,或设置为flags中指定的_值,如下所述。此外,函数用1填充掩码的边界以简化内部处理。因此,可以将相同的掩码用于多次调用函数,以确保填充区域不重叠。
        seedPoint - 起始点。
        newVal - 重绘域像素的新值。
        loDiff - 当前观察到的像素与其属于组件的邻居之一,或即将添加到组件的种子像素之间的最大下亮度/颜色差。
        upDiff - 当前观察到的像素与其属于组件的邻居之一,或即将添加到组件的种子像素之间的最大上亮度/颜色差。
        rect - 由函数设置的可选输出参数,表示重绘域的最小边界矩形。
        flags - 操作标志。前8位包含连通性值。默认值4表示仅考虑四个最近的邻居像素(共享边的像素)。连通性值8表示将考虑八个最近的邻居像素(共享角的像素)。接下来的8位(8-16)包含一个1到255之间的值,用于填充掩码(默认值为1)。例如,4 | ( 255 << 8 )将考虑4个最近邻并用值255填充掩码。以下附加选项占据更高的位,因此可以通过按位或(|)与连通性和掩码填充值进一步组合,请参阅#FloodFillFlags。注意:由于掩码比填充的图像大,图像中的像素\((x, y)\)对应于掩码中的像素\((x+1, y+1)\)。参见:findContours
        返回
        自动生成
      • floodFill

        public static int floodFill​(Mat image,
                                    Mat mask,
                                    Point seedPoint,
                                    Scalar newVal,
                                    Rect rect,
                                    Scalar loDiff,
                                    Scalar upDiff)
        使用给定颜色填充连通分量。cv::floodFill函数从种子点开始,使用指定的颜色填充连通分量。连通性由邻近像素的颜色/亮度接近度决定。像素\((x,y)\)被视为属于重绘域,如果
        • 对于灰度图像和浮动范围 \(\texttt{src} (x',y')- \texttt{loDiff} \leq \texttt{src} (x,y) \leq \texttt{src} (x',y')+ \texttt{upDiff}\)
        • 对于灰度图像和固定范围 \(\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)- \texttt{loDiff} \leq \texttt{src} (x,y) \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)+ \texttt{upDiff}\)
        • 对于彩色图像和浮动范围 \(\texttt{src} (x',y')_r- \texttt{loDiff} _r \leq \texttt{src} (x,y)_r \leq \texttt{src} (x',y')_r+ \texttt{upDiff} _r,\) \(\texttt{src} (x',y')_g- \texttt{loDiff} _g \leq \texttt{src} (x,y)_g \leq \texttt{src} (x',y')_g+ \texttt{upDiff} _g\)和\(\texttt{src} (x',y')_b- \texttt{loDiff} _b \leq \texttt{src} (x,y)_b \leq \texttt{src} (x',y')_b+ \texttt{upDiff} _b\)
        • 对于彩色图像和固定范围 \(\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_r- \texttt{loDiff} _r \leq \texttt{src} (x,y)_r \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_r+ \texttt{upDiff} _r,\) \(\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_g- \texttt{loDiff} _g \leq \texttt{src} (x,y)_g \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_g+ \texttt{upDiff} _g\)和\(\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_b- \texttt{loDiff} _b \leq \texttt{src} (x,y)_b \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_b+ \texttt{upDiff} _b\)
        其中\(src(x',y')\)是已知属于该组件的像素邻居之一的值。也就是说,要添加到连通组件中的像素,其颜色/亮度必须足够接近
        • 在浮动范围的情况下,属于连通组件的邻居之一的颜色/亮度。
        • 在固定范围的情况下,种子点的颜色/亮度。
        使用这些函数可以原地标记连通分量为指定颜色,或构建掩码然后提取轮廓,或将区域复制到另一图像等。
        参数
        image - 输入/输出1通道或3通道、8位或浮点图像。除非设置了#FLOODFILL_MASK_ONLY标志,否则该函数将修改它。请参阅下文详情。
        mask - 操作掩码,应为单通道8位图像,比image宽2像素,高2像素。如果传递空Mat,它将被自动创建。由于这是一个输入和输出参数,您必须负责初始化它。填充不能穿过输入掩码中的非零像素。例如,边缘检测器的输出可以用作停止在边缘填充的掩码。输出时,掩码中与图像中填充像素对应的像素设置为1,或设置为flags中指定的_值,如下所述。此外,函数用1填充掩码的边界以简化内部处理。因此,可以将相同的掩码用于多次调用函数,以确保填充区域不重叠。
        seedPoint - 起始点。
        newVal - 重绘域像素的新值。
        loDiff - 当前观察到的像素与其属于组件的邻居之一,或即将添加到组件的种子像素之间的最大下亮度/颜色差。
        upDiff - 当前观察到的像素与其属于组件的邻居之一,或即将添加到组件的种子像素之间的最大上亮度/颜色差。
        rect - 由函数设置的可选输出参数,表示重绘域的最小边界矩形。4表示仅考虑四个最近的邻居像素(共享边的像素)。连通性值8表示将考虑八个最近的邻居像素(共享角的像素)。接下来的8位(8-16)包含一个1到255之间的值,用于填充掩码(默认值为1)。例如,4 | ( 255 << 8 )将考虑4个最近邻并用值255填充掩码。以下附加选项占据更高的位,因此可以通过按位或(|)与连通性和掩码填充值进一步组合,请参阅#FloodFillFlags。注意:由于掩码比填充的图像大,图像中的像素\((x, y)\)对应于掩码中的像素\((x+1, y+1)\)。参见:findContours
        返回
        自动生成
      • floodFill

        public static int floodFill​(Mat image,
                                    Mat mask,
                                    Point seedPoint,
                                    Scalar newVal,
                                    Rect rect,
                                    Scalar loDiff)
        使用给定颜色填充连通分量。cv::floodFill函数从种子点开始,使用指定的颜色填充连通分量。连通性由邻近像素的颜色/亮度接近度决定。像素\((x,y)\)被视为属于重绘域,如果
        • 对于灰度图像和浮动范围 \(\texttt{src} (x',y')- \texttt{loDiff} \leq \texttt{src} (x,y) \leq \texttt{src} (x',y')+ \texttt{upDiff}\)
        • 对于灰度图像和固定范围 \(\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)- \texttt{loDiff} \leq \texttt{src} (x,y) \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)+ \texttt{upDiff}\)
        • 对于彩色图像和浮动范围 \(\texttt{src} (x',y')_r- \texttt{loDiff} _r \leq \texttt{src} (x,y)_r \leq \texttt{src} (x',y')_r+ \texttt{upDiff} _r,\) \(\texttt{src} (x',y')_g- \texttt{loDiff} _g \leq \texttt{src} (x,y)_g \leq \texttt{src} (x',y')_g+ \texttt{upDiff} _g\)和\(\texttt{src} (x',y')_b- \texttt{loDiff} _b \leq \texttt{src} (x,y)_b \leq \texttt{src} (x',y')_b+ \texttt{upDiff} _b\)
        • 对于彩色图像和固定范围 \(\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_r- \texttt{loDiff} _r \leq \texttt{src} (x,y)_r \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_r+ \texttt{upDiff} _r,\) \(\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_g- \texttt{loDiff} _g \leq \texttt{src} (x,y)_g \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_g+ \texttt{upDiff} _g\)和\(\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_b- \texttt{loDiff} _b \leq \texttt{src} (x,y)_b \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_b+ \texttt{upDiff} _b\)
        其中\(src(x',y')\)是已知属于该组件的像素邻居之一的值。也就是说,要添加到连通组件中的像素,其颜色/亮度必须足够接近
        • 在浮动范围的情况下,属于连通组件的邻居之一的颜色/亮度。
        • 在固定范围的情况下,种子点的颜色/亮度。
        使用这些函数可以原地标记连通分量为指定颜色,或构建掩码然后提取轮廓,或将区域复制到另一图像等。
        参数
        image - 输入/输出1通道或3通道、8位或浮点图像。除非设置了#FLOODFILL_MASK_ONLY标志,否则该函数将修改它。请参阅下文详情。
        mask - 操作掩码,应为单通道8位图像,比image宽2像素,高2像素。如果传递空Mat,它将被自动创建。由于这是一个输入和输出参数,您必须负责初始化它。填充不能穿过输入掩码中的非零像素。例如,边缘检测器的输出可以用作停止在边缘填充的掩码。输出时,掩码中与图像中填充像素对应的像素设置为1,或设置为flags中指定的_值,如下所述。此外,函数用1填充掩码的边界以简化内部处理。因此,可以将相同的掩码用于多次调用函数,以确保填充区域不重叠。
        seedPoint - 起始点。
        newVal - 重绘域像素的新值。
        loDiff - 当前观察到的像素与其属于组件的邻居之一,或即将添加到组件的种子像素之间的最大下亮度/颜色差。与其属于组件的邻居之一,或即将添加到组件的种子像素。
        rect - 由函数设置的可选输出参数,表示重绘域的最小边界矩形。4表示仅考虑四个最近的邻居像素(共享边的像素)。连通性值8表示将考虑八个最近的邻居像素(共享角的像素)。接下来的8位(8-16)包含一个1到255之间的值,用于填充掩码(默认值为1)。例如,4 | ( 255 << 8 )将考虑4个最近邻并用值255填充掩码。以下附加选项占据更高的位,因此可以通过按位或(|)与连通性和掩码填充值进一步组合,请参阅#FloodFillFlags。注意:由于掩码比填充的图像大,图像中的像素\((x, y)\)对应于掩码中的像素\((x+1, y+1)\)。参见:findContours
        返回
        自动生成
      • floodFill

        public static int floodFill​(Mat image,
                                    Mat mask,
                                    Point seedPoint,
                                    Scalar newVal,
                                    Rect rect)
        使用给定颜色填充连通分量。cv::floodFill函数从种子点开始,使用指定的颜色填充连通分量。连通性由邻近像素的颜色/亮度接近度决定。像素\((x,y)\)被视为属于重绘域,如果
        • 对于灰度图像和浮动范围 \(\texttt{src} (x',y')- \texttt{loDiff} \leq \texttt{src} (x,y) \leq \texttt{src} (x',y')+ \texttt{upDiff}\)
        • 对于灰度图像和固定范围 \(\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)- \texttt{loDiff} \leq \texttt{src} (x,y) \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)+ \texttt{upDiff}\)
        • 对于彩色图像和浮动范围 \(\texttt{src} (x',y')_r- \texttt{loDiff} _r \leq \texttt{src} (x,y)_r \leq \texttt{src} (x',y')_r+ \texttt{upDiff} _r,\) \(\texttt{src} (x',y')_g- \texttt{loDiff} _g \leq \texttt{src} (x,y)_g \leq \texttt{src} (x',y')_g+ \texttt{upDiff} _g\)和\(\texttt{src} (x',y')_b- \texttt{loDiff} _b \leq \texttt{src} (x,y)_b \leq \texttt{src} (x',y')_b+ \texttt{upDiff} _b\)
        • 对于彩色图像和固定范围 \(\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_r- \texttt{loDiff} _r \leq \texttt{src} (x,y)_r \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_r+ \texttt{upDiff} _r,\) \(\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_g- \texttt{loDiff} _g \leq \texttt{src} (x,y)_g \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_g+ \texttt{upDiff} _g\)和\(\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_b- \texttt{loDiff} _b \leq \texttt{src} (x,y)_b \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_b+ \texttt{upDiff} _b\)
        其中\(src(x',y')\)是已知属于该组件的像素邻居之一的值。也就是说,要添加到连通组件中的像素,其颜色/亮度必须足够接近
        • 在浮动范围的情况下,属于连通组件的邻居之一的颜色/亮度。
        • 在固定范围的情况下,种子点的颜色/亮度。
        使用这些函数可以原地标记连通分量为指定颜色,或构建掩码然后提取轮廓,或将区域复制到另一图像等。
        参数
        image - 输入/输出1通道或3通道、8位或浮点图像。除非设置了#FLOODFILL_MASK_ONLY标志,否则该函数将修改它。请参阅下文详情。
        mask - 操作掩码,应为单通道8位图像,比image宽2像素,高2像素。如果传递空Mat,它将被自动创建。由于这是一个输入和输出参数,您必须负责初始化它。填充不能穿过输入掩码中的非零像素。例如,边缘检测器的输出可以用作停止在边缘填充的掩码。输出时,掩码中与图像中填充像素对应的像素设置为1,或设置为flags中指定的_值,如下所述。此外,函数用1填充掩码的边界以简化内部处理。因此,可以将相同的掩码用于多次调用函数,以确保填充区域不重叠。
        seedPoint - 起始点。
        newVal - 重绘域像素的新值。与其属于组件的邻居之一,或即将添加到组件的种子像素。与其属于组件的邻居之一,或即将添加到组件的种子像素。重绘域。4表示仅考虑四个最近的邻居像素(共享边的像素)。连通性值8表示将考虑八个最近的邻居像素(共享角的像素)。接下来的8位(8-16)包含一个1到255之间的值,用于填充掩码(默认值为1)。例如,4 | ( 255 << 8 )将考虑4个最近邻并用值255填充掩码。以下附加选项占据更高的位,因此可以通过按位或(|)与连通性和掩码填充值进一步组合,请参阅#FloodFillFlags。注意:由于掩码比填充的图像大,图像中的像素\((x, y)\)对应于掩码中的像素\((x+1, y+1)\)。参见:findContours
        rect - 由函数设置的可选输出参数,表示重绘域的最小边界矩形。4表示仅考虑四个最近的邻居像素(共享边的像素)。连通性值8表示将考虑八个最近的邻居像素(共享角的像素)。接下来的8位(8-16)包含一个1到255之间的值,用于填充掩码(默认值为1)。例如,4 | ( 255 << 8 )将考虑4个最近邻并用值255填充掩码。以下附加选项占据更高的位,因此可以通过按位或(|)与连通性和掩码填充值进一步组合,请参阅#FloodFillFlags。注意:由于掩码比填充的图像大,图像中的像素\((x, y)\)对应于掩码中的像素\((x+1, y+1)\)。参见:findContours
        返回
        自动生成
      • floodFill

        public static int floodFill​(Mat image,
                                    Mat mask,
                                    Point seedPoint,
                                    Scalar newVal)
        使用给定颜色填充连通分量。cv::floodFill函数从种子点开始,使用指定的颜色填充连通分量。连通性由邻近像素的颜色/亮度接近度决定。像素\((x,y)\)被视为属于重绘域,如果
        • 对于灰度图像和浮动范围 \(\texttt{src} (x',y')- \texttt{loDiff} \leq \texttt{src} (x,y) \leq \texttt{src} (x',y')+ \texttt{upDiff}\)
        • 对于灰度图像和固定范围 \(\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)- \texttt{loDiff} \leq \texttt{src} (x,y) \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)+ \texttt{upDiff}\)
        • 对于彩色图像和浮动范围 \(\texttt{src} (x',y')_r- \texttt{loDiff} _r \leq \texttt{src} (x,y)_r \leq \texttt{src} (x',y')_r+ \texttt{upDiff} _r,\) \(\texttt{src} (x',y')_g- \texttt{loDiff} _g \leq \texttt{src} (x,y)_g \leq \texttt{src} (x',y')_g+ \texttt{upDiff} _g\)和\(\texttt{src} (x',y')_b- \texttt{loDiff} _b \leq \texttt{src} (x,y)_b \leq \texttt{src} (x',y')_b+ \texttt{upDiff} _b\)
        • 对于彩色图像和固定范围 \(\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_r- \texttt{loDiff} _r \leq \texttt{src} (x,y)_r \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_r+ \texttt{upDiff} _r,\) \(\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_g- \texttt{loDiff} _g \leq \texttt{src} (x,y)_g \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_g+ \texttt{upDiff} _g\)和\(\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_b- \texttt{loDiff} _b \leq \texttt{src} (x,y)_b \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_b+ \texttt{upDiff} _b\)
        其中\(src(x',y')\)是已知属于该组件的像素邻居之一的值。也就是说,要添加到连通组件中的像素,其颜色/亮度必须足够接近
        • 在浮动范围的情况下,属于连通组件的邻居之一的颜色/亮度。
        • 在固定范围的情况下,种子点的颜色/亮度。
        使用这些函数可以原地标记连通分量为指定颜色,或构建掩码然后提取轮廓,或将区域复制到另一图像等。
        参数
        image - 输入/输出1通道或3通道、8位或浮点图像。除非设置了#FLOODFILL_MASK_ONLY标志,否则该函数将修改它。请参阅下文详情。
        mask - 操作掩码,应为单通道8位图像,比image宽2像素,高2像素。如果传递空Mat,它将被自动创建。由于这是一个输入和输出参数,您必须负责初始化它。填充不能穿过输入掩码中的非零像素。例如,边缘检测器的输出可以用作停止在边缘填充的掩码。输出时,掩码中与图像中填充像素对应的像素设置为1,或设置为flags中指定的_值,如下所述。此外,函数用1填充掩码的边界以简化内部处理。因此,可以将相同的掩码用于多次调用函数,以确保填充区域不重叠。
        seedPoint - 起始点。
        newVal - 重绘域像素的新值。与其属于组件的邻居之一,或即将添加到组件的种子像素。与其属于组件的邻居之一,或即将添加到组件的种子像素。重绘域。4表示仅考虑四个最近的邻居像素(共享边的像素)。连通性值8表示将考虑八个最近的邻居像素(共享角的像素)。接下来的8位(8-16)包含一个1到255之间的值,用于填充掩码(默认值为1)。例如,4 | ( 255 << 8 )将考虑4个最近邻并用值255填充掩码。以下附加选项占据更高的位,因此可以通过按位或(|)与连通性和掩码填充值进一步组合,请参阅#FloodFillFlags。注意:由于掩码比填充的图像大,图像中的像素\((x, y)\)对应于掩码中的像素\((x+1, y+1)\)。参见:findContours
        返回
        自动生成
      • blendLinear

        public static void blendLinear​(Mat src1,
                                       Mat src2,
                                       Mat weights1,
                                       Mat weights2,
                                       Mat dst)
        不带 mask 参数的变体
        参数
        src1 - 自动生成
        src2 - 自动生成
        weights1 - 自动生成。
        weights2 - 自动生成。
        dst - 自动生成
      • cvtColor

        public static void cvtColor​(Mat src,
                                    Mat dst,
                                    int code,
                                    int dstCn,
                                    int hint)
        将图像从一种颜色空间转换为另一种颜色空间。该函数将输入图像从一种颜色空间转换为另一种颜色空间。在转换到-从RGB颜色空间的情况下,应显式指定通道顺序(RGB或BGR)。请注意,OpenCV中的默认颜色格式通常称为RGB,但实际上是BGR(字节顺序颠倒)。因此,标准(24位)彩色图像中的第一个字节将是8位蓝色分量,第二个字节是绿色,第三个字节是红色。第四、第五和第六个字节将是第二个像素(首先是蓝色,然后是绿色,然后是红色),依此类推。R、G和B通道值的常规范围是:
        • CV_8U图像为0到255
        • CV_16U图像为0到65535
        • CV_32F图像为0到1
        在线性变换的情况下,范围无关紧要。但在非线性变换的情况下,RGB输入图像应归一化到适当的值范围以获得正确的结果,例如,对于RGB \(\rightarrow\) L\*u\*v\*变换。例如,如果您有一个直接从8位图像转换而未经任何缩放的32位浮点图像,那么它将具有0..255的值范围而不是函数假定的0..1。因此,在调用#cvtColor之前,您需要先将图像向下缩放: img *= 1./255; cvtColor(img, img, COLOR_BGR2Luv); 如果您使用带有8位图像的#cvtColor,转换将丢失一些信息。对于许多应用程序,这不会被注意到,但建议在需要完整颜色范围的应用程序中或在操作前转换图像然后转换回时使用32位图像。如果转换添加了alpha通道,其值将设置为相应通道范围的最大值:CV_8U为255,CV_16U为65535,CV_32F为1。
        参数
        src - 输入图像:8位无符号、16位无符号( CV_16UC... )或单精度浮点。
        dst - 输出图像,大小和深度与src相同。
        code - 颜色空间转换代码(请参阅#ColorConversionCodes)。
        dstCn - 目标图像中的通道数;如果参数为0,则通道数将根据src和code自动确定。
        hint - 实现修改标志。请参阅#AlgorithmHint。注意:源图像(src)必须是适合所需颜色转换的类型。请参阅ColorConversionCodes。参见:REF: imgproc_color_conversions
      • cvtColor

        public static void cvtColor​(Mat src,
                                    Mat dst,
                                    int code,
                                    int dstCn)
        将图像从一种颜色空间转换为另一种颜色空间。该函数将输入图像从一种颜色空间转换为另一种颜色空间。在转换到-从RGB颜色空间的情况下,应显式指定通道顺序(RGB或BGR)。请注意,OpenCV中的默认颜色格式通常称为RGB,但实际上是BGR(字节顺序颠倒)。因此,标准(24位)彩色图像中的第一个字节将是8位蓝色分量,第二个字节是绿色,第三个字节是红色。第四、第五和第六个字节将是第二个像素(首先是蓝色,然后是绿色,然后是红色),依此类推。R、G和B通道值的常规范围是:
        • CV_8U图像为0到255
        • CV_16U图像为0到65535
        • CV_32F图像为0到1
        在线性变换的情况下,范围无关紧要。但在非线性变换的情况下,RGB输入图像应归一化到适当的值范围以获得正确的结果,例如,对于RGB \(\rightarrow\) L\*u\*v\*变换。例如,如果您有一个直接从8位图像转换而未经任何缩放的32位浮点图像,那么它将具有0..255的值范围而不是函数假定的0..1。因此,在调用#cvtColor之前,您需要先将图像向下缩放: img *= 1./255; cvtColor(img, img, COLOR_BGR2Luv); 如果您使用带有8位图像的#cvtColor,转换将丢失一些信息。对于许多应用程序,这不会被注意到,但建议在需要完整颜色范围的应用程序中或在操作前转换图像然后转换回时使用32位图像。如果转换添加了alpha通道,其值将设置为相应通道范围的最大值:CV_8U为255,CV_16U为65535,CV_32F为1。
        参数
        src - 输入图像:8位无符号、16位无符号( CV_16UC... )或单精度浮点。
        dst - 输出图像,大小和深度与src相同。
        code - 颜色空间转换代码(请参阅#ColorConversionCodes)。
        dstCn - 目标图像中的通道数;如果参数为0,则通道数将根据src和code自动确定。注意:源图像(src)必须是适合所需颜色转换的类型。请参阅ColorConversionCodes。参见:REF: imgproc_color_conversions
      • cvtColor

        public static void cvtColor​(Mat src,
                                    Mat dst,
                                    int code)
        将图像从一种颜色空间转换为另一种颜色空间。该函数将输入图像从一种颜色空间转换为另一种颜色空间。在转换到-从RGB颜色空间的情况下,应显式指定通道顺序(RGB或BGR)。请注意,OpenCV中的默认颜色格式通常称为RGB,但实际上是BGR(字节顺序颠倒)。因此,标准(24位)彩色图像中的第一个字节将是8位蓝色分量,第二个字节是绿色,第三个字节是红色。第四、第五和第六个字节将是第二个像素(首先是蓝色,然后是绿色,然后是红色),依此类推。R、G和B通道值的常规范围是:
        • CV_8U图像为0到255
        • CV_16U图像为0到65535
        • CV_32F图像为0到1
        在线性变换的情况下,范围无关紧要。但在非线性变换的情况下,RGB输入图像应归一化到适当的值范围以获得正确的结果,例如,对于RGB \(\rightarrow\) L\*u\*v\*变换。例如,如果您有一个直接从8位图像转换而未经任何缩放的32位浮点图像,那么它将具有0..255的值范围而不是函数假定的0..1。因此,在调用#cvtColor之前,您需要先将图像向下缩放: img *= 1./255; cvtColor(img, img, COLOR_BGR2Luv); 如果您使用带有8位图像的#cvtColor,转换将丢失一些信息。对于许多应用程序,这不会被注意到,但建议在需要完整颜色范围的应用程序中或在操作前转换图像然后转换回时使用32位图像。如果转换添加了alpha通道,其值将设置为相应通道范围的最大值:CV_8U为255,CV_16U为65535,CV_32F为1。
        参数
        src - 输入图像:8位无符号、16位无符号( CV_16UC... )或单精度浮点。
        dst - 输出图像,大小和深度与src相同。
        code - 颜色空间转换代码(请参阅下面的描述)。通道数将根据src和code自动确定。注意:源图像(src)必须是适合所需颜色转换的类型。请参阅ColorConversionCodes。参见:REF: imgproc_color_conversions
      • cvtColorTwoPlane

        public static void cvtColorTwoPlane​(Mat src1,
                                            Mat src2,
                                            Mat dst,
                                            int code,
                                            int hint)
        将图像从一种颜色空间转换为另一种颜色空间,其中源图像存储在两个平面中。此函数目前仅支持YUV420到RGB的转换。
        参数
        src1 - Y平面的8位图像(#CV_8U)。
        src2 - 包含交错U/V平面的图像。
        dst - 输出图像。
        code - 指定转换类型。它可以取以下值之一:
        • #COLOR_YUV2BGR_NV12
        • #COLOR_YUV2RGB_NV12
        • #COLOR_YUV2BGRA_NV12
        • #COLOR_YUV2RGBA_NV12
        • #COLOR_YUV2BGR_NV21
        • #COLOR_YUV2RGB_NV21
        • #COLOR_YUV2BGRA_NV21
        • #COLOR_YUV2RGBA_NV21
        hint - 实现修改标志。请参阅#AlgorithmHint。
      • cvtColorTwoPlane

        public static void cvtColorTwoPlane​(Mat src1,
                                            Mat src2,
                                            Mat dst,
                                            int code)
        将图像从一种颜色空间转换为另一种颜色空间,其中源图像存储在两个平面中。此函数目前仅支持YUV420到RGB的转换。
        参数
        src1 - Y平面的8位图像(#CV_8U)。
        src2 - 包含交错U/V平面的图像。
        dst - 输出图像。
        code - 指定转换类型。它可以取以下值之一:
        • #COLOR_YUV2BGR_NV12
        • #COLOR_YUV2RGB_NV12
        • #COLOR_YUV2BGRA_NV12
        • #COLOR_YUV2RGBA_NV12
        • #COLOR_YUV2BGR_NV21
        • #COLOR_YUV2RGB_NV21
        • #COLOR_YUV2BGRA_NV21
        • #COLOR_YUV2RGBA_NV21
      • demosaicing

        public static void demosaicing​(Mat src,
                                       Mat dst,
                                       int code,
                                       int dstCn)
        所有去马赛克(demosaicing)处理的主函数
        参数
        src - 输入图像:8位无符号或16位无符号。
        dst - 输出图像,大小和深度与src相同。
        code - 颜色空间转换代码(请参阅下面的描述)。
        dstCn - 目标图像中的通道数;如果参数为0,则通道数将根据src和code自动确定。该函数可以执行以下变换:
        • 使用双线性插值进行去马赛克
        #COLOR_BayerBG2BGR , #COLOR_BayerGB2BGR , #COLOR_BayerRG2BGR , #COLOR_BayerGR2BGR #COLOR_BayerBG2GRAY , #COLOR_BayerGB2GRAY , #COLOR_BayerRG2GRAY , #COLOR_BayerGR2GRAY
        • 使用可变梯度数量进行去马赛克。
        #COLOR_BayerBG2BGR_VNG , #COLOR_BayerGB2BGR_VNG , #COLOR_BayerRG2BGR_VNG , #COLOR_BayerGR2BGR_VNG
        • 边缘感知去马赛克。
        #COLOR_BayerBG2BGR_EA , #COLOR_BayerGB2BGR_EA , #COLOR_BayerRG2BGR_EA , #COLOR_BayerGR2BGR_EA
        • 带Alpha通道的去马赛克
        #COLOR_BayerBG2BGRA , #COLOR_BayerGB2BGRA , #COLOR_BayerRG2BGRA , #COLOR_BayerGR2BGRA 注意:源图像(src)必须是适合所需颜色转换的类型。请参阅ColorConversionCodes。参见:cvtColor
      • demosaicing

        public static void demosaicing​(Mat src,
                                       Mat dst,
                                       int code)
        所有去马赛克(demosaicing)处理的主函数
        参数
        src - 输入图像:8位无符号或16位无符号。
        dst - 输出图像,大小和深度与src相同。
        code - 颜色空间转换代码(请参阅下面的描述)。通道数将根据src和code自动确定。该函数可以执行以下变换:
        • 使用双线性插值进行去马赛克
        #COLOR_BayerBG2BGR , #COLOR_BayerGB2BGR , #COLOR_BayerRG2BGR , #COLOR_BayerGR2BGR #COLOR_BayerBG2GRAY , #COLOR_BayerGB2GRAY , #COLOR_BayerRG2GRAY , #COLOR_BayerGR2GRAY
        • 使用可变梯度数量进行去马赛克。
        #COLOR_BayerBG2BGR_VNG , #COLOR_BayerGB2BGR_VNG , #COLOR_BayerRG2BGR_VNG , #COLOR_BayerGR2BGR_VNG
        • 边缘感知去马赛克。
        #COLOR_BayerBG2BGR_EA , #COLOR_BayerGB2BGR_EA , #COLOR_BayerRG2BGR_EA , #COLOR_BayerGR2BGR_EA
        • 带Alpha通道的去马赛克
        #COLOR_BayerBG2BGRA , #COLOR_BayerGB2BGRA , #COLOR_BayerRG2BGRA , #COLOR_BayerGR2BGRA 注意:源图像(src)必须是适合所需颜色转换的类型。请参阅ColorConversionCodes。参见:cvtColor
      • 矩 (moments)

        public static Moments moments​(Mat array,
                                      boolean binaryImage)
        计算多边形或栅格化形状高达三阶的所有矩。该函数计算多边形或栅格化形状高达三阶的矩。结果在cv::Moments结构中返回。
        参数
        array - 单通道栅格图像(CV_8U、CV_16U、CV_16S、CV_32F、CV_64F)或二维点数组(Point或Point2f)。
        binaryImage - 如果为true,则所有非零图像像素均视为1。此参数仅用于图像。
        返回
        moments。注意:仅适用于Python绑定中的轮廓矩计算:请注意,输入数组的numpy类型应为np.int32或np.float32。注意:对于基于轮廓的矩,零阶矩\(\texttt{m00}\)表示轮廓面积。如果输入轮廓是退化的(例如,单个点或所有点共线),则面积为零,因此\(\texttt{m00} == 0\)。在这种情况下,质心坐标(\(\texttt{m10/m00}\), \(\texttt{m01/m00}\))未定义,并且必须由调用者显式处理。一种常见的解决方法是使用cv::boundingRect()或通过平均输入点来计算中心。参见:contourArea, arcLength
      • 矩 (moments)

        public static Moments moments​(Mat array)
        计算多边形或栅格化形状高达三阶的所有矩。该函数计算多边形或栅格化形状高达三阶的矩。结果在cv::Moments结构中返回。
        参数
        array - 单通道栅格图像(CV_8U、CV_16U、CV_16S、CV_32F、CV_64F)或二维点数组(Point或Point2f)。仅用于图像。
        返回
        moments。注意:仅适用于Python绑定中的轮廓矩计算:请注意,输入数组的numpy类型应为np.int32或np.float32。注意:对于基于轮廓的矩,零阶矩\(\texttt{m00}\)表示轮廓面积。如果输入轮廓是退化的(例如,单个点或所有点共线),则面积为零,因此\(\texttt{m00} == 0\)。在这种情况下,质心坐标(\(\texttt{m10/m00}\), \(\texttt{m01/m00}\))未定义,并且必须由调用者显式处理。一种常见的解决方法是使用cv::boundingRect()或通过平均输入点来计算中心。参见:contourArea, arcLength
      • HuMoments

        public static void HuMoments​(Moments m,
                                     Mat hu)
      • matchTemplate

        public static void matchTemplate​(Mat image,
                                         Mat templ,
                                         Mat result,
                                         int method,
                                         Mat mask)
        将模板与重叠的图像区域进行比较。该函数在图像中滑动,使用指定的_方法将\(w \times h\)大小的重叠块与模板进行比较,并将比较结果存储在result中。#TemplateMatchModes描述了可用比较方法的公式(\(I\)表示图像,\(T\)表示模板,\(R\)表示结果,\(M\)表示可选掩码)。求和在模板和/或图像块上进行:\(x' = 0...w-1, y' = 0...h-1\)函数完成比较后,可以使用#minMaxLoc找到最佳匹配,作为全局最小值(当使用#TM_SQDIFF时)或最大值(当使用#TM_CCORR或#TM_CCOEFF时)。对于彩色图像,模板求和的分子和分母中的每个求和都遍及所有通道,并为每个通道使用单独的平均值。也就是说,该函数可以接受彩色模板和彩色图像。结果仍将是一个单通道图像,更易于分析。
        参数
        image - 搜索运行的图像。它必须是8位或32位浮点。
        templ - 搜索的模板。它必须不大于源图像且具有相同的数据类型。
        result - 比较结果图。它必须是单通道32位浮点。如果图像为\(W \times H\)且模板为\(w \times h\),则result为\((W-w+1) \times (H-h+1)\)。
        method - 指定比较方法的参数,请参阅#TemplateMatchModes。
        mask - 可选掩码。它的大小必须与templ相同。它必须具有与模板相同的通道数,或者只有一个通道,然后该通道用于所有模板和图像通道。如果数据类型是#CV_8U,则掩码被解释为二进制掩码,这意味着仅使用掩码非零的元素,并且保持不变,与实际掩码值(权重等于1)无关。对于#CV_32F数据类型,掩码值用作权重。确切的公式在#TemplateMatchModes中记录。
      • matchTemplate

        public static void matchTemplate​(Mat image,
                                         Mat templ,
                                         Mat result,
                                         int method)
        将模板与重叠的图像区域进行比较。该函数在图像中滑动,使用指定的_方法将\(w \times h\)大小的重叠块与模板进行比较,并将比较结果存储在result中。#TemplateMatchModes描述了可用比较方法的公式(\(I\)表示图像,\(T\)表示模板,\(R\)表示结果,\(M\)表示可选掩码)。求和在模板和/或图像块上进行:\(x' = 0...w-1, y' = 0...h-1\)函数完成比较后,可以使用#minMaxLoc找到最佳匹配,作为全局最小值(当使用#TM_SQDIFF时)或最大值(当使用#TM_CCORR或#TM_CCOEFF时)。对于彩色图像,模板求和的分子和分母中的每个求和都遍及所有通道,并为每个通道使用单独的平均值。也就是说,该函数可以接受彩色模板和彩色图像。结果仍将是一个单通道图像,更易于分析。
        参数
        image - 搜索运行的图像。它必须是8位或32位浮点。
        templ - 搜索的模板。它必须不大于源图像且具有相同的数据类型。
        result - 比较结果图。它必须是单通道32位浮点。如果图像为\(W \times H\)且模板为\(w \times h\),则result为\((W-w+1) \times (H-h+1)\)。
        method - 指定比较方法的参数,请参阅#TemplateMatchModes,它必须具有与模板相同的通道数,或者只有一个通道,然后该通道用于所有模板和图像通道。如果数据类型是#CV_8U,则掩码被解释为二进制掩码,这意味着仅使用掩码非零的元素,并且保持不变,与实际掩码值(权重等于1)无关。对于#CV_32F数据类型,掩码值用作权重。确切的公式在#TemplateMatchModes中记录。
      • connectedComponentsWithAlgorithm

        public static int connectedComponentsWithAlgorithm​(Mat image,
                                                           Mat labels,
                                                           int connectivity,
                                                           int ltype,
                                                           int ccltype)
        使用4路或8路连通性计算布尔图像image的连通组件标记图像-返回N,即标签的总数[0, N-1],其中0代表背景标签。ltype指定输出标签图像类型,这是一个基于总标签数或图像总像素数的重要考虑因素。ccltype指定要使用的连通组件标记算法,目前支持Bolelli(Spaghetti)CITE: Bolelli2019、Grana(BBDT)CITE: Grana2010和Wu(SAUF)CITE: Wu2009算法,有关详细信息,请参阅#ConnectedComponentsAlgorithmsTypes。请注意,SAUF算法强制标签按行主序排序,而Spaghetti和BBDT则不。如果启用了至少一个允许的并行框架,并且图像的行数至少是#getNumberOfCPUs返回值的两倍,则此函数使用算法的并行版本。
        参数
        image - 要标记的8位单通道图像。
        labels - 目标标记图像。
        connectivity - 8或4,分别表示8路或4路连通性。
        ltype - 输出图像标签类型。目前支持CV_32S和CV_16U。
        ccltype - 连通组件算法类型(请参阅#ConnectedComponentsAlgorithmsTypes)。
        返回
        自动生成
      • connectedComponents

        public static int connectedComponents​(Mat image,
                                              Mat labels,
                                              int connectivity,
                                              int ltype)
        参数
        image - 要标记的8位单通道图像。
        labels - 目标标记图像。
        connectivity - 8或4,分别表示8路或4路连通性。
        ltype - 输出图像标签类型。目前支持CV_32S和CV_16U。
        返回
        自动生成
      • connectedComponents

        public static int connectedComponents​(Mat image,
                                              Mat labels,
                                              int connectivity)
        参数
        image - 要标记的8位单通道图像。
        labels - 目标标记图像。
        connectivity - 8或4,分别表示8路或4路连通性。
        返回
        自动生成
      • connectedComponents

        public static int connectedComponents​(Mat image,
                                              Mat labels)
        参数
        image - 要标记的8位单通道图像。
        labels - 目标标记图像。
        返回
        自动生成
      • connectedComponentsWithStatsWithAlgorithm

        public static int connectedComponentsWithStatsWithAlgorithm​(Mat image,
                                                                    Mat labels,
                                                                    Mat stats,
                                                                    Mat centroids,
                                                                    int connectivity,
                                                                    int ltype,
                                                                    int ccltype)
        使用4路或8路连通性计算布尔图像的连通组件标记图像,并为每个标签图像生成统计输出-返回N,即标签的总数[0, N-1],其中0代表背景标签。ltype指定输出标签图像类型,这是一个基于总标签数或图像总像素数的重要考虑因素。ccltype指定要使用的连通组件标记算法,目前支持Bolelli(Spaghetti)CITE: Bolelli2019、Grana(BBDT)CITE: Grana2010和Wu(SAUF)CITE: Wu2009算法,有关详细信息,请参阅#ConnectedComponentsAlgorithmsTypes。请注意,SAUF算法强制标签按行主序排序,而Spaghetti和BBDT则不。如果启用了至少一个允许的并行框架,并且图像的行数至少是#getNumberOfCPUs返回值的两倍,则此函数使用算法的并行版本(包括统计信息)。
        参数
        image - 要标记的8位单通道图像。
        labels - 目标标记图像。
        stats - 每个标签(包括背景标签)的统计输出。统计信息通过stats(label, COLUMN)访问,其中COLUMN是#ConnectedComponentsTypes之一,用于选择统计信息。数据类型为CV_32S。
        centroids - 每个标签(包括背景标签)的质心输出。质心通过centroids(label, 0)访问x坐标,通过centroids(label, 1)访问y坐标。数据类型为CV_64F。
        connectivity - 8或4,分别表示8路或4路连通性。
        ltype - 输出图像标签类型。目前支持CV_32S和CV_16U。
        ccltype - 连通组件算法类型(请参阅#ConnectedComponentsAlgorithmsTypes)。
        返回
        自动生成
      • connectedComponentsWithStats

        public static int connectedComponentsWithStats​(Mat image,
                                                       Mat labels,
                                                       Mat stats,
                                                       Mat centroids,
                                                       int connectivity,
                                                       int ltype)
        参数
        image - 要标记的8位单通道图像。
        labels - 目标标记图像。
        stats - 每个标签(包括背景标签)的统计输出。统计信息通过stats(label, COLUMN)访问,其中COLUMN是#ConnectedComponentsTypes之一,用于选择统计信息。数据类型为CV_32S。
        centroids - 每个标签(包括背景标签)的质心输出。质心通过centroids(label, 0)访问x坐标,通过centroids(label, 1)访问y坐标。数据类型为CV_64F。
        connectivity - 8或4,分别表示8路或4路连通性。
        ltype - 输出图像标签类型。目前支持CV_32S和CV_16U。
        返回
        自动生成
      • connectedComponentsWithStats

        public static int connectedComponentsWithStats​(Mat image,
                                                       Mat labels,
                                                       Mat stats,
                                                       Mat centroids,
                                                       int connectivity)
        参数
        image - 要标记的8位单通道图像。
        labels - 目标标记图像。
        stats - 每个标签(包括背景标签)的统计输出。统计信息通过stats(label, COLUMN)访问,其中COLUMN是#ConnectedComponentsTypes之一,用于选择统计信息。数据类型为CV_32S。
        centroids - 每个标签(包括背景标签)的质心输出。质心通过centroids(label, 0)访问x坐标,通过centroids(label, 1)访问y坐标。数据类型为CV_64F。
        connectivity - 8或4,分别表示8路或4路连通性。
        返回
        自动生成
      • connectedComponentsWithStats

        public static int connectedComponentsWithStats​(Mat image,
                                                       Mat labels,
                                                       Mat stats,
                                                       Mat centroids)
        参数
        image - 要标记的8位单通道图像。
        labels - 目标标记图像。
        stats - 每个标签(包括背景标签)的统计输出。统计信息通过stats(label, COLUMN)访问,其中COLUMN是#ConnectedComponentsTypes之一,用于选择统计信息。数据类型为CV_32S。
        centroids - 每个标签(包括背景标签)的质心输出。质心通过centroids(label, 0)访问x坐标,通过centroids(label, 1)访问y坐标。数据类型为CV_64F。
        返回
        自动生成
      • findContours

        public static void findContours​(Mat image,
                                        java.util.List<MatOfPoint> contours,
                                        Mat hierarchy,
                                        int mode,
                                        int method,
                                        Point offset)
        在二值图像中查找轮廓。该函数使用CITE: Suzuki85算法从二值图像中检索轮廓。轮廓是形状分析、物体检测和识别的有用工具。请参阅OpenCV示例目录中的squares.cpp。注意:自opencv 3.2起,源图像不会被此函数修改。
        参数
        image - 源,一个8位单通道图像。非零像素被视为1。零像素保持0,因此图像被视为二值。您可以使用#compare、#inRange、#threshold、#adaptiveThreshold、#Canny等从灰度或彩色图像创建二值图像。如果mode等于#RETR_CCOMP或#RETR_FLOODFILL,输入也可以是标签的32位整数图像(CV_32SC1)。
        contours - 检测到的轮廓。每个轮廓存储为点向量(例如 std::vector<std::vector<cv::Point> >)。
        hierarchy - 可选输出向量(例如 std::vector<cv::Vec4i>),包含图像拓扑信息。它包含与轮廓数量相同的元素。对于每个轮廓i,contours[i],元素hierarchy[i][0]、hierarchy[i][1]、hierarchy[i][2]和hierarchy[i][3]分别设置为同一层次级别上下一个和上一个轮廓在contours中的0基索引、第一个子轮廓和父轮廓。如果轮廓i没有下一个、上一个、父或嵌套轮廓,则hierarchy[i]的相应元素将为负。注意:在Python中,hierarchy嵌套在顶层数组中。使用hierarchy[0][i]访问第i个轮廓的层次结构元素。
        mode - 轮廓检索模式,请参阅#RetrievalModes。
        method - 轮廓近似方法,请参阅#ContourApproximationModes。
        offset - 可选偏移量,每个轮廓点都将在此偏移量上进行偏移。如果从图像ROI提取轮廓,然后需要在整个图像上下文中进行分析,则此功能非常有用。
      • findContours

        public static void findContours​(Mat image,
                                        java.util.List<MatOfPoint> contours,
                                        Mat hierarchy,
                                        int mode,
                                        int method)
        在二值图像中查找轮廓。该函数使用CITE: Suzuki85算法从二值图像中检索轮廓。轮廓是形状分析、物体检测和识别的有用工具。请参阅OpenCV示例目录中的squares.cpp。注意:自opencv 3.2起,源图像不会被此函数修改。
        参数
        image - 源,一个8位单通道图像。非零像素被视为1。零像素保持0,因此图像被视为二值。您可以使用#compare、#inRange、#threshold、#adaptiveThreshold、#Canny等从灰度或彩色图像创建二值图像。如果mode等于#RETR_CCOMP或#RETR_FLOODFILL,输入也可以是标签的32位整数图像(CV_32SC1)。
        contours - 检测到的轮廓。每个轮廓存储为点向量(例如 std::vector<std::vector<cv::Point> >)。
        hierarchy - 可选输出向量(例如 std::vector<cv::Vec4i>),包含图像拓扑信息。它包含与轮廓数量相同的元素。对于每个轮廓i,contours[i],元素hierarchy[i][0]、hierarchy[i][1]、hierarchy[i][2]和hierarchy[i][3]分别设置为同一层次级别上下一个和上一个轮廓在contours中的0基索引、第一个子轮廓和父轮廓。如果轮廓i没有下一个、上一个、父或嵌套轮廓,则hierarchy[i]的相应元素将为负。注意:在Python中,hierarchy嵌套在顶层数组中。使用hierarchy[0][i]访问第i个轮廓的层次结构元素。
        mode - 轮廓检索模式,请参阅#RetrievalModes。
        method - 轮廓近似方法,请参阅#ContourApproximationModes。如果从图像ROI提取轮廓,然后需要在整个图像上下文中进行分析。
      • findContoursLinkRuns

        public static void findContoursLinkRuns​(Mat image,
                                                java.util.List<Mat> contours,
                                                Mat hierarchy)
      • findContoursLinkRuns

        public static void findContoursLinkRuns​(Mat image,
                                                java.util.List<Mat> contours)
      • approxPolyDP

        public static void approxPolyDP​(MatOfPoint2f curve,
                                        MatOfPoint2f approxCurve,
                                        double epsilon,
                                        boolean closed)
        以指定的精度近似多边形曲线。cv::approxPolyDP函数用顶点更少的多边形近似曲线或多边形,使得它们之间的距离小于或等于指定的精度。它使用Douglas-Peucker算法<https://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm>
        参数
        curve - 存储在std::vector或Mat中的2D点输入向量。
        approxCurve - 近似结果。类型应与输入曲线的类型匹配。
        epsilon - 指定近似精度的参数。这是原始曲线与其近似值之间的最大距离。
        closed - 如果为true,则近似曲线是闭合的(其第一个和最后一个顶点连接)。否则,它不是闭合的。
      • approxPolyN

        public static void approxPolyN​(Mat curve,
                                       Mat approxCurve,
                                       int nsides,
                                       float epsilon_percentage,
                                       boolean ensure_convex)
        以指定的精度和边数近似多边形的凸包。cv::approxPolyN函数近似一个多边形为一个凸包,使得原始轮廓的轮廓面积与新多边形的面积之差最小。它使用贪婪算法将两个顶点合并为一个,同时使额外面积最小化。绘制由凸轮廓每条边形成的直线,并考虑结果三角形的面积。每个顶点将位于原始轮廓上或其外部。该算法基于论文CITE: LowIlie2003。
        参数
        curve - 存储在std::vector或Mat中的2D点输入向量,点必须是浮点或整数。
        approxCurve - 近似结果。类型是std::vector或Mat中的2D点(Point2f或Point)向量。
        nsides - 该参数定义了结果多边形的边数。
        epsilon_percentage - 定义最大附加面积的百分比。如果它等于-1,则不使用。否则,当附加面积大于contourArea(_curve) * percentage时,算法停止。如果附加面积超过限制,算法将返回超出限制时存在的顶点数量。
        ensure_convex - 如果为true,则算法会创建一个输入轮廓的凸包。否则,输入向量应为凸的。
      • approxPolyN

        public static void approxPolyN​(Mat curve,
                                       Mat approxCurve,
                                       int nsides,
                                       float epsilon_percentage)
        以指定的精度和边数近似多边形的凸包。cv::approxPolyN函数近似一个多边形为一个凸包,使得原始轮廓的轮廓面积与新多边形的面积之差最小。它使用贪婪算法将两个顶点合并为一个,同时使额外面积最小化。绘制由凸轮廓每条边形成的直线,并考虑结果三角形的面积。每个顶点将位于原始轮廓上或其外部。该算法基于论文CITE: LowIlie2003。
        参数
        curve - 存储在std::vector或Mat中的2D点输入向量,点必须是浮点或整数。
        approxCurve - 近似结果。类型是std::vector或Mat中的2D点(Point2f或Point)向量。
        nsides - 该参数定义了结果多边形的边数。
        epsilon_percentage - 定义最大附加面积的百分比。如果它等于-1,则不使用。否则,当附加面积大于contourArea(_curve) * percentage时,算法停止。如果附加面积超过限制,算法将返回超出限制时存在的顶点数量。
      • approxPolyN

        public static void approxPolyN​(Mat curve,
                                       Mat approxCurve,
                                       int nsides)
        以指定的精度和边数近似多边形的凸包。cv::approxPolyN函数近似一个多边形为一个凸包,使得原始轮廓的轮廓面积与新多边形的面积之差最小。它使用贪婪算法将两个顶点合并为一个,同时使额外面积最小化。绘制由凸轮廓每条边形成的直线,并考虑结果三角形的面积。每个顶点将位于原始轮廓上或其外部。该算法基于论文CITE: LowIlie2003。
        参数
        curve - 存储在std::vector或Mat中的2D点输入向量,点必须是浮点或整数。
        approxCurve - 近似结果。类型是std::vector或Mat中的2D点(Point2f或Point)向量。
        nsides - 该参数定义了结果多边形的边数。如果它等于-1,则不使用。否则,当附加面积大于contourArea(_curve) * percentage时,算法停止。如果附加面积超过限制,算法将返回超出限制时存在的顶点数量。
      • arcLength

        public static double arcLength​(MatOfPoint2f curve,
                                       boolean closed)
        计算轮廓周长或曲线长度。该函数计算曲线长度或闭合轮廓周长。
        参数
        curve - 存储在std::vector或Mat中的2D点输入向量。
        closed - 指示曲线是否闭合的标志。
        返回
        自动生成
      • boundingRect

        public static Rect boundingRect​(Mat array)
        计算点集或灰度图像的非零像素的上右边界矩形。该函数计算并返回指定点集或灰度图像非零像素的最小上右边界矩形。
        参数
        array - 输入灰度图像或2D点集,存储在std::vector或Mat中。
        返回
        自动生成
      • contourArea

        public static double contourArea​(Mat contour,
                                         boolean oriented)
        计算轮廓面积。该函数计算轮廓面积。与矩类似,面积是使用格林公式计算的。因此,返回的面积和非零像素的数量(如果您使用#drawContours或#fillPoly绘制轮廓)可能不同。此外,该函数对于具有自相交的轮廓很可能会给出错误的结果。示例: vector<Point> contour; contour.push_back(Point2f(0, 0)); contour.push_back(Point2f(10, 0)); contour.push_back(Point2f(10, 10)); contour.push_back(Point2f(5, 4)); double area0 = contourArea(contour); vector<Point> approx; approxPolyDP(contour, approx, 5, true); double area1 = contourArea(approx); cout << "area0 =" << area0 << endl << "area1 =" << area1 << endl << "approx poly vertices" << approx.size() << endl;
        参数
        contour - 存储在std::vector或Mat中的2D点(轮廓顶点)输入向量。
        oriented - 有向面积标志。如果为true,则函数返回一个有符号面积值,该值取决于轮廓方向(顺时针或逆时针)。使用此功能,您可以通过取面积的符号来确定轮廓的方向。默认情况下,该参数为false,表示返回绝对值。
        返回
        自动生成
      • contourArea

        public static double contourArea​(Mat contour)
        计算轮廓面积。该函数计算轮廓面积。与矩类似,面积是使用格林公式计算的。因此,返回的面积和非零像素的数量(如果您使用#drawContours或#fillPoly绘制轮廓)可能不同。此外,该函数对于具有自相交的轮廓很可能会给出错误的结果。示例: vector<Point> contour; contour.push_back(Point2f(0, 0)); contour.push_back(Point2f(10, 0)); contour.push_back(Point2f(10, 10)); contour.push_back(Point2f(5, 4)); double area0 = contourArea(contour); vector<Point> approx; approxPolyDP(contour, approx, 5, true); double area1 = contourArea(approx); cout << "area0 =" << area0 << endl << "area1 =" << area1 << endl << "approx poly vertices" << approx.size() << endl;
        参数
        contour - 存储在std::vector或Mat中的2D点(轮廓顶点)输入向量。取决于轮廓方向(顺时针或逆时针)。使用此功能,您可以通过取面积的符号来确定轮廓的方向。默认情况下,该参数为false,表示返回绝对值。
        返回
        自动生成
      • minAreaRect

        public static RotatedRect minAreaRect​(MatOfPoint2f points)
        查找包围输入2D点集的最小面积旋转矩形。该函数计算并返回指定点集的最小面积边界矩形(可能已旋转)。旋转角度表示连接起始点和结束点的线(基于顺时针顺序,具有最大索引的角具有最大\(y\))与水平轴之间的角度。该角度始终在\([-90, 0)\)之间,因为如果对象旋转超过矩形角度,则使用下一条边来测量角度。随着对象的旋转,起始点和结束点会发生变化。开发人员应牢记,当数据接近包含Mat元素的边界时,返回的RotatedRect可能包含负索引。
        参数
        points - 存储在std::vector<>或Mat中的2D点输入向量。
        返回
        自动生成
      • boxPoints

        public static void boxPoints​(RotatedRect box,
                                     Mat points)
        查找旋转矩形的四个顶点。用于绘制旋转矩形。该函数查找旋转矩形的四个顶点。四个顶点按顺时针顺序返回,从y坐标最大的点开始。如果两个点具有相同的y坐标,则最右边的点是起始点。此函数用于绘制矩形。在C++中,可以使用RotatedRect::points方法直接替换此函数。请访问REF: tutorial_bounding_rotated_ellipses "关于创建边界旋转框和椭圆以进行轮廓处理的教程"以获取更多信息。
        参数
        box - 输入的旋转矩形。它可以是REF: minAreaRect的输出。
        points - 矩形四个顶点的输出数组。
      • minEnclosingCircle

        public static void minEnclosingCircle​(MatOfPoint2f points,
                                              Point center,
                                              float[] radius)
        查找一个最小面积的圆,该圆包围一个二维点集。该函数使用迭代算法查找二维点集的最小包围圆。
        参数
        points - 存储在std::vector<>或Mat中的2D点输入向量。
        center - 圆的输出中心。
        radius - 圆的输出半径。
      • minEnclosingTriangle

        public static double minEnclosingTriangle​(Mat points,
                                                  Mat triangle)
        查找一个最小面积的三角形,该三角形包围一个二维点集,并返回其面积。该函数查找一个最小面积的三角形,该三角形包围给定的二维点集,并返回其面积。给定二维点集的输出如下图所示。二维点用红色*表示,包围三角形用黄色*表示。 ![最小包围三角形函数示例输出](pics/minenclosingtriangle.png) 该算法的实现基于 O'Rourke 的 CITE: ORourke86 和 Klee 和 Laskowski 的 CITE: KleeLaskowski85 论文。O'Rourke 提供了一个 \(\theta(n)\) 算法,用于查找具有 n 个顶点的二维凸多边形的最小包围三角形。由于 #minEnclosingTriangle 函数以二维点集作为输入,因此需要一个额外的预处理步骤来计算二维点集的凸包。#convexHull 函数的复杂度为 \(O(n log(n))\),高于 \(\theta(n)\)。因此,该函数的总体复杂度为 \(O(n log(n))\)。
        参数
        points - 输入的二维点向量,深度为 CV_32S 或 CV_32F,存储在 std::vector<> 或 Mat 中
        triangle - 定义三角形顶点的三个二维点输出向量。OutputArray 的深度必须为 CV_32F。
        返回
        自动生成
      • minEnclosingConvexPolygon

        public static double minEnclosingConvexPolygon​(Mat points,
                                                       Mat polygon,
                                                       int k)
        查找一个最小面积的凸多边形,该多边形包围一个二维点集,并返回其面积。该函数接收一组给定的二维点,并找到一个具有 k 个顶点且面积最小的包围多边形。它以点集和参数 k 作为输入,并返回最小包围多边形的面积。实现基于 Aggarwal、Chang 和 Yap 的论文 CITE: Aggarwal1985。他们提供了一个 \(\theta(n²log(n)log(k))\) 算法,用于查找具有 k 个顶点的最小凸多边形,该多边形包围一个具有 n 个顶点的二维凸多边形(k < n)。由于 #minEnclosingConvexPolygon 函数以二维点集作为输入,因此需要一个额外的预处理步骤来计算二维点集的凸包。#convexHull 函数的复杂度为 \(O(n log(n))\),低于 \(\theta(n²log(n)log(k))\)。因此,该函数的总体复杂度为 \(O(n²log(n)log(k))\)。
        参数
        points - 存储在std::vector<>或Mat中的2D点输入向量。
        polygon - 定义包围多边形顶点的二维点输出向量
        k - 输出多边形的顶点数
        返回
        自动生成
      • matchShapes

        public static double matchShapes​(Mat contour1,
                                         Mat contour2,
                                         int method,
                                         double parameter)
        比较两种形状。该函数比较两种形状。所有三种实现的方​​法都使用 Hu 不变量(参见 #HuMoments)
        参数
        contour1 - 第一个轮廓或灰度图像。
        contour2 - 第二个轮廓或灰度图像。
        method - 比较方法,参见 #ShapeMatchModes
        parameter - 特定于方法的参数(目前不支持)。
        返回
        自动生成
      • convexHull

        public static void convexHull​(MatOfPoint points,
                                      MatOfInt hull,
                                      boolean clockwise)
        查找点集的凸包。函数 cv::convexHull 使用 Sklansky 的算法 CITE: Sklansky82 来查找二维点集的凸包,该算法在当前实现中的复杂度为 *O(N logN)*。
        参数
        points - 输入的二维点集,存储在 std::vector 或 Mat 中。
        hull - 输出凸包。它可以是索引的整数向量或点的向量。在第一种情况下,凸包元素是原始数组中凸包点的 0 索引(因为凸包点集是原始点集的子集)。在第二种情况下,凸包元素本身就是凸包点。
        clockwise - 方向标志。如果为 true,则输出凸包按顺时针方向排列。否则,按逆时针方向排列。假定的坐标系 X 轴指向右方,Y 轴指向上方。返回凸包点。否则,返回凸包点的索引。当输出数组为 std::vector 时,忽略该标志,输出取决于向量的类型:std::vector<int> 表示 returnPoints=false,std::vector<Point> 表示 returnPoints=true。 注意: pointshull 应该是不同的数组,不支持原地处理。有关更多详细信息,请参阅 REF: tutorial_hull "相应的教程"。有用链接:https://www.learnopencv.com/convex-hull-using-opencv-in-python-and-c/
      • convexHull

        public static void convexHull​(MatOfPoint points,
                                      MatOfInt hull)
        查找点集的凸包。函数 cv::convexHull 使用 Sklansky 的算法 CITE: Sklansky82 来查找二维点集的凸包,该算法在当前实现中的复杂度为 *O(N logN)*。
        参数
        points - 输入的二维点集,存储在 std::vector 或 Mat 中。
        hull - 输出凸包。它可以是索引的整数向量或点的向量。在第一种情况下,凸包元素是原始数组中凸包点的 0 索引(因为凸包点集是原始点集的子集)。在第二种情况下,凸包元素本身就是凸包点。否则,按逆时针方向排列。假定的坐标系 X 轴指向右方,Y 轴指向上方。返回凸包点。否则,返回凸包点的索引。当输出数组为 std::vector 时,忽略该标志,输出取决于向量的类型:std::vector<int> 表示 returnPoints=false,std::vector<Point> 表示 returnPoints=true。 注意: pointshull 应该是不同的数组,不支持原地处理。有关更多详细信息,请参阅 REF: tutorial_hull "相应的教程"。有用链接:https://www.learnopencv.com/convex-hull-using-opencv-in-python-and-c/
      • convexityDefects

        public static void convexityDefects​(MatOfPoint contour,
                                            MatOfInt convexhull,
                                            MatOfInt4 convexityDefects)
        查找轮廓的凸性缺陷。下图显示了手的轮廓的凸性缺陷: ![image](pics/defects.png)
        参数
        contour - 输入轮廓。
        convexhull - 使用 convexHull 获得的凸包,它应该包含构成凸包的轮廓点的索引。
        convexityDefects - 凸性缺陷的输出向量。在 C++ 和新的 Python/Java 接口中,每个凸性缺陷都表示为一个 4 元素整数向量(也称为 #Vec4i):(start_index, end_index, farthest_pt_index, fixpt_depth),其中索引是凸性缺陷开始、结束和最远点的原始轮廓中的 0 索引,fixpt_depth 是最远轮廓点与凸包之间距离的定点近似值(具有 8 位小数)。也就是说,要获得深度的浮点值,将是 fixpt_depth/256.0。
      • isContourConvex

        public static boolean isContourConvex​(MatOfPoint contour)
        测试轮廓的凸性。该函数测试输入轮廓是否为凸形。轮廓必须是简单的,即没有自相交。否则,函数输出未定义。
        参数
        contour - 输入二维点向量,存储在 std::vector<> 或 Mat 中
        返回
        自动生成
      • intersectConvexConvex

        public static float intersectConvexConvex​(Mat p1,
                                                  Mat p2,
                                                  Mat p12,
                                                  boolean handleNested)
        求两个凸多边形的交集 (Finds intersection of two convex polygons)
        参数
        p1 - 第一个多边形
        p2 - 第二个多边形
        p12 - 描述相交区域的输出多边形
        handleNested - 如果为 true,则当一个多边形完全包含在另一个多边形中时,会找到交集。如果为 false,则不找到交集。如果多边形共享一条边或一个多边形的顶点位于另一条边的边缘上,则它们不被视为嵌套,无论 handleNested 的值如何,都会找到交集。
        返回
        相交多边形的面积。可能为负,如果算法未收敛,例如输入非凸。 注意: intersectConvexConvex 不会确认两个多边形都是凸的,如果它们不是凸的,它将返回无效结果。
      • intersectConvexConvex

        public static float intersectConvexConvex​(Mat p1,
                                                  Mat p2,
                                                  Mat p12)
        求两个凸多边形的交集 (Finds intersection of two convex polygons)
        参数
        p1 - 第一个多边形
        p2 - 第二个多边形
        p12 - 描述相交区域的多边形输出。如果为 false,则不找到交集。如果多边形共享一条边或一个多边形的顶点位于另一条边的边缘上,则它们不被视为嵌套,无论 handleNested 的值如何,都会找到交集。
        返回
        相交多边形的面积。可能为负,如果算法未收敛,例如输入非凸。 注意: intersectConvexConvex 不会确认两个多边形都是凸的,如果它们不是凸的,它将返回无效结果。
      • fitEllipse

        public static RotatedRect fitEllipse​(MatOfPoint2f points)
        拟合一个椭圆以包围二维点集。该函数计算最能拟合(最小二乘意义上)二维点的椭圆。它返回椭圆内切的旋转矩形。使用了 CITE: Fitzgibbon95 描述的第一个算法。开发者应牢记,由于数据点靠近包含 Mat 元素的边界,返回的椭圆/旋转矩形数据可能包含负索引。
        参数
        points - 输入二维点集,存储在 std::vector<> 或 Mat 中。 注意: 输入点类型为 REF: Point2i 或 REF: Point2f,且至少需要 5 个点。 注意: REF: getClosestEllipsePoints 函数可用于计算椭圆拟合误差。
        返回
        自动生成
      • fitEllipseAMS

        public static RotatedRect fitEllipseAMS​(Mat points)
        拟合一个椭圆以包围二维点集。该函数计算拟合二维点的椭圆。它返回椭圆内切的旋转矩形。使用了 CITE: Taubin1991 提出的近似均方(AMS)方法。对于椭圆,该基集为 \( \chi= \left(x^2, x y, y^2, x, y, 1\right) \),这是一组六个自由系数 \( A^T=\left\{A_{\text{xx}},A_{\text{xy}},A_{\text{yy}},A_x,A_y,A_0\right\} \)。然而,要指定一个椭圆,只需要五个数字;长短半轴长度 \( (a,b) \),位置 \( (x_0,y_0) \),以及方向 \( \theta \)。这是因为基集包含直线、二次曲线、抛物线和双曲线函数以及椭圆函数作为可能的拟合。如果发现拟合是抛物线或双曲线函数,则使用标准的 #fitEllipse 方法。AMS 方法通过施加条件 \( A^T ( D_x^T D_x + D_y^T D_y) A = 1 \) 来将拟合限制为抛物线、双曲线和椭圆曲线,其中矩阵 \( Dx \) 和 \( Dy \) 是设计矩阵 \( D \) 对 x 和 y 的偏导数。矩阵通过对集合中的每个点应用以下内容逐行形成:\(align*}{ D(i,:)&=\left\{x_i^2, x_i y_i, y_i^2, x_i, y_i, 1\right\} & D_x(i,:)&=\left\{2 x_i,y_i,0,1,0,0\right\} & D_y(i,:)&=\left\{0,x_i,2 y_i,0,1,0\right\} \) AMS 方法最小化成本函数 \(equation*}{ \epsilon ^2=\frac{ A^T D^T D A }{ A^T (D_x^T D_x + D_y^T D_y) A^T } \) 通过求解广义特征值问题来找到最小成本。 \(equation*}{ D^T D A = \lambda \left( D_x^T D_x + D_y^T D_y\right) A \)
        参数
        points - 输入二维点集,存储在 std::vector<> 或 Mat 中。 注意: 输入点类型为 REF: Point2i 或 REF: Point2f,且至少需要 5 个点。 注意: REF: getClosestEllipsePoints 函数可用于计算椭圆拟合误差。
        返回
        自动生成
      • fitEllipseDirect

        public static RotatedRect fitEllipseDirect​(Mat points)
        拟合一个椭圆以包围二维点集。该函数计算拟合二维点的椭圆。它返回椭圆内切的旋转矩形。使用了 CITE: oy1998NumericallySD 的直接最小二乘(Direct)方法。对于椭圆,该基集为 \( \chi= \left(x^2, x y, y^2, x, y, 1\right) \),这是一组六个自由系数 \( A^T=\left\{A_{\text{xx}},A_{\text{xy}},A_{\text{yy}},A_x,A_y,A_0\right\} \)。然而,要指定一个椭圆,只需要五个数字;长短半轴长度 \( (a,b) \),位置 \( (x_0,y_0) \),以及方向 \( \theta \)。这是因为基集包含直线、二次曲线、抛物线和双曲线函数以及椭圆函数作为可能的拟合。Direct 方法通过确保 \( 4 A_{xx} A_{yy}- A_{xy}^2 > 0 \) 来将拟合限制为椭圆。施加的条件是 \( 4 A_{xx} A_{yy}- A_{xy}^2=1 \),这满足了不等式,并且由于系数可以任意缩放,因此并不过于严格。 \(equation*}{ \epsilon ^2= A^T D^T D A \quad \text{with} \quad A^T C A =1 \quad \text{and} \quad C=\left(\begin{matrix} 0 & 0 & 2 & 0 & 0 & 0 \\ 0 & -1 & 0 & 0 & 0 & 0 \\ 2 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 \end{matrix} \right) \) 通过求解广义特征值问题来找到最小成本。 \(equation*}{ D^T D A = \lambda \left( C\right) A \) 该系统产生一个正特征值 \( \lambda\),该特征值被选为具有其特征向量 \(\mathbf{u}\) 的解。这些用于查找系数 \(equation*}{ A = \sqrt{\frac{1}{\mathbf{u}^T C \mathbf{u}}} \mathbf{u} \) 缩放因子保证了 \(A^T C A =1\)。
        参数
        points - 输入二维点集,存储在 std::vector<> 或 Mat 中。 注意: 输入点类型为 REF: Point2i 或 REF: Point2f,且至少需要 5 个点。 注意: REF: getClosestEllipsePoints 函数可用于计算椭圆拟合误差。
        返回
        自动生成
      • getClosestEllipsePoints

        public static void getClosestEllipsePoints​(RotatedRect ellipse_params,
                                                   Mat points,
                                                   Mat closest_pts)
        计算给定椭圆上每个二维点最近的二维点。该函数计算给定椭圆上二维点向量的最近二维位置,基于 CITE: Chatfield2017 代码。该函数可用于计算椭圆拟合误差等。
        参数
        ellipse_params - 椭圆参数
        points - 输入二维点
        closest_pts - 对于每个二维点,它们在给定椭圆上的相应最近二维点 注意: 输入点类型为 REF: Point2i 或 REF: Point2f SEE: fitEllipse, fitEllipseAMS, fitEllipseDirect
      • fitLine

        public static void fitLine​(Mat points,
                                   Mat line,
                                   int distType,
                                   double param,
                                   double reps,
                                   double aeps)
        拟合一条直线到二维或三维点集。函数 fitLine 通过最小化 \(\sum_i \rho(r_i)\) 来拟合一条直线到二维或三维点集,其中 \(r_i\) 是第 i 个点到直线的距离,而 \(\rho(r)\) 是一个距离函数,是以下函数之一:
        • DIST_L2 \(\rho (r) = r^2/2 \quad \text{(最简单、最快的最小二乘方法)}\)
        • DIST_L1 \(\rho (r) = r\)
        • DIST_L12 \(\rho (r) = 2 \cdot ( \sqrt{1 + \frac{r^2}{2}} - 1)\)
        • DIST_FAIR \(\rho \left (r \right ) = C^2 \cdot \left ( \frac{r}{C} - \log{\left(1 + \frac{r}{C}\right)} \right ) \quad \text{其中} \quad C=1.3998\)
        • DIST_WELSCH \(\rho \left (r \right ) = \frac{C^2}{2} \cdot \left ( 1 - \exp{\left(-\left(\frac{r}{C}\right)^2\right)} \right ) \quad \text{其中} \quad C=2.9846\)
        • DIST_HUBER \(\rho (r) = \fork{r^2/2}{如果 \(r < C\)}{C \cdot (r-C/2)}{否则} \quad \text{其中} \quad C=1.345\)
        该算法基于 M-估计量()技术,该技术使用加权最小二乘算法迭代拟合直线。每次迭代后,权重 \(w_i\) 被调整为与 \(\rho(r_i)\) 成反比。
        参数
        points - 输入的二维或三维点向量,存储在 std::vector<> 或 Mat 中。
        line - 输出直线参数。对于二维拟合,它应该是一个 4 元素向量(如 Vec4f)- (vx, vy, x0, y0),其中 (vx, vy) 是与直线共线的归一化向量,(x0, y0) 是直线上的点。对于三维拟合,它应该是一个 6 元素向量(如 Vec6f)- (vx, vy, vz, x0, y0, z0),其中 (vx, vy, vz) 是与直线共线的归一化向量,(x0, y0, z0) 是直线上的点。
        distType - M-估计量使用的距离,参见 #DistanceTypes
        param - 某些距离类型的数值参数(C)。如果为 0,则选择最佳值。
        reps - 半径(坐标原点与直线之间的距离)的足够精度。
        aeps - 角度的足够精度。对于 reps 和 aeps,0.01 是一个好的默认值。
      • pointPolygonTest

        public static double pointPolygonTest​(MatOfPoint2f contour,
                                              Point pt,
                                              boolean measureDist)
        执行点在轮廓内测试。该函数确定点是在轮廓内、外部,还是位于边缘上(或与顶点重合)。它分别返回正值(内部)、负值(外部)或零值(在边缘上)。当 measureDist=false 时,返回值分别为 +1、-1 和 0。否则,返回值是点与最近轮廓边缘之间的有符号距离。下面是函数输出的示例,其中每个图像像素都针对轮廓进行了测试: ![sample output](pics/pointpolygon.png)
        参数
        contour - 输入轮廓。
        pt - 针对轮廓测试的点。
        measureDist - 如果为 true,则函数估计点到最近轮廓边缘的有符号距离。否则,函数仅检查点是否在轮廓内。
        返回
        自动生成
      • rotatedRectangleIntersection

        public static int rotatedRectangleIntersection​(RotatedRect rect1,
                                                       RotatedRect rect2,
                                                       Mat intersectingRegion)
        找出两个旋转矩形之间是否存在任何交集。如果存在,则返回相交区域的顶点。下面是一些相交配置的示例。阴影区域表示相交区域,红色顶点由函数返回。 ![intersection examples](pics/intersection.png)
        参数
        rect1 - 第一个矩形
        rect2 - 第二个矩形
        intersectingRegion - 相交区域顶点的输出数组。最多返回 8 个顶点。存储为 std::vector<cv::Point2f> 或 CV_32FC2 类型的 Mx1 的 cv::Mat。
        返回
        #RectanglesIntersectTypes 的其中之一
      • createGeneralizedHoughBallard

        public static GeneralizedHoughBallard createGeneralizedHoughBallard()
        创建一个 cv::GeneralizedHoughBallard 类的智能指针并初始化它。
        返回
        自动生成
      • createGeneralizedHoughGuil

        public static GeneralizedHoughGuil createGeneralizedHoughGuil()
        创建一个 cv::GeneralizedHoughGuil 类的智能指针并初始化它。
        返回
        自动生成
      • applyColorMap

        public static void applyColorMap​(Mat src,
                                         Mat dst,
                                         int colormap)
        在给定图像上应用等同于 GNU Octave/MATLAB 的颜色映射表。
        参数
        src - 源图像,灰度或彩色,类型为 CV_8UC1 或 CV_8UC3。如果是 CV_8UC3,则内部使用 cv::COLOR_BGR2GRAY 生成 CV_8UC1 图像。
        dst - 结果是经过颜色映射的源图像。注意:Mat::create 会在 dst 上调用。
        colormap - 要应用的颜色映射,参见 #ColormapTypes
      • applyColorMap

        public static void applyColorMap​(Mat src,
                                         Mat dst,
                                         Mat userColor)
        在给定图像上应用用户自定义的颜色映射表。
        参数
        src - 源图像,灰度或彩色,类型为 CV_8UC1 或 CV_8UC3。如果是 CV_8UC3,则内部使用 cv::COLOR_BGR2GRAY 生成 CV_8UC1 图像。
        dst - 结果是颜色映射后的源图像,通道数与 userColor 相同。注意:Mat::create 会在 dst 上调用。
        userColor - 要应用的颜色映射,类型为 CV_8UC1 或 CV_8UC3,大小为 256
      • line

        public static void line​(Mat img,
                                Point pt1,
                                Point pt2,
                                Scalar color,
                                int thickness,
                                int lineType,
                                int shift)
        绘制连接两点的线段。函数 line 在图像中绘制 pt1 和 pt2 点之间的线段。线段会被裁剪到图像边界。对于整数坐标的非抗锯齿线,使用 8 连接或 4 连接的 Bresenham 算法。粗线绘制时带有圆角端点。抗锯齿线使用高斯滤波绘制。
        参数
        img - 图像。
        pt1 - 线段的第一个点。
        pt2 - 线段的第二个点。
        color - 线条颜色。
        thickness - 线条粗细。
        lineType - 线条类型。参见 #LineTypes。
        shift - 点坐标中的小数位数。
      • line

        public static void line​(Mat img,
                                Point pt1,
                                Point pt2,
                                Scalar color,
                                int thickness,
                                int lineType)
        绘制连接两点的线段。函数 line 在图像中绘制 pt1 和 pt2 点之间的线段。线段会被裁剪到图像边界。对于整数坐标的非抗锯齿线,使用 8 连接或 4 连接的 Bresenham 算法。粗线绘制时带有圆角端点。抗锯齿线使用高斯滤波绘制。
        参数
        img - 图像。
        pt1 - 线段的第一个点。
        pt2 - 线段的第二个点。
        color - 线条颜色。
        thickness - 线条粗细。
        lineType - 线条类型。参见 #LineTypes。
      • line

        public static void line​(Mat img,
                                Point pt1,
                                Point pt2,
                                Scalar color,
                                int thickness)
        绘制连接两点的线段。函数 line 在图像中绘制 pt1 和 pt2 点之间的线段。线段会被裁剪到图像边界。对于整数坐标的非抗锯齿线,使用 8 连接或 4 连接的 Bresenham 算法。粗线绘制时带有圆角端点。抗锯齿线使用高斯滤波绘制。
        参数
        img - 图像。
        pt1 - 线段的第一个点。
        pt2 - 线段的第二个点。
        color - 线条颜色。
        thickness - 线条粗细。
      • line

        public static void line​(Mat img,
                                Point pt1,
                                Point pt2,
                                Scalar color)
        绘制连接两点的线段。函数 line 在图像中绘制 pt1 和 pt2 点之间的线段。线段会被裁剪到图像边界。对于整数坐标的非抗锯齿线,使用 8 连接或 4 连接的 Bresenham 算法。粗线绘制时带有圆角端点。抗锯齿线使用高斯滤波绘制。
        参数
        img - 图像。
        pt1 - 线段的第一个点。
        pt2 - 线段的第二个点。
        color - 线条颜色。
      • arrowedLine

        public static void arrowedLine​(Mat img,
                                       Point pt1,
                                       Point pt2,
                                       Scalar color,
                                       int thickness,
                                       int line_type,
                                       int shift,
                                       double tipLength)
        绘制一个指向第二个点的箭头线段。函数 cv::arrowedLine 在图像中绘制 pt1 和 pt2 点之间的箭头。另请参见 #line。
        参数
        img - 图像。
        pt1 - 箭头开始的点。
        pt2 - 箭头指向的点。
        color - 线条颜色。
        thickness - 线条粗细。
        line_type - 线条类型。参见 #LineTypes
        shift - 点坐标中的小数位数。
        tipLength - 箭头尖端的长度与箭头长度的比例
      • arrowedLine

        public static void arrowedLine​(Mat img,
                                       Point pt1,
                                       Point pt2,
                                       Scalar color,
                                       int thickness,
                                       int line_type,
                                       int shift)
        绘制一个指向第二个点的箭头线段。函数 cv::arrowedLine 在图像中绘制 pt1 和 pt2 点之间的箭头。另请参见 #line。
        参数
        img - 图像。
        pt1 - 箭头开始的点。
        pt2 - 箭头指向的点。
        color - 线条颜色。
        thickness - 线条粗细。
        line_type - 线条类型。参见 #LineTypes
        shift - 点坐标中的小数位数。
      • arrowedLine

        public static void arrowedLine​(Mat img,
                                       Point pt1,
                                       Point pt2,
                                       Scalar color,
                                       int thickness,
                                       int line_type)
        绘制一个指向第二个点的箭头线段。函数 cv::arrowedLine 在图像中绘制 pt1 和 pt2 点之间的箭头。另请参见 #line。
        参数
        img - 图像。
        pt1 - 箭头开始的点。
        pt2 - 箭头指向的点。
        color - 线条颜色。
        thickness - 线条粗细。
        line_type - 线条类型。参见 #LineTypes
      • arrowedLine

        public static void arrowedLine​(Mat img,
                                       Point pt1,
                                       Point pt2,
                                       Scalar color,
                                       int thickness)
        绘制一个指向第二个点的箭头线段。函数 cv::arrowedLine 在图像中绘制 pt1 和 pt2 点之间的箭头。另请参见 #line。
        参数
        img - 图像。
        pt1 - 箭头开始的点。
        pt2 - 箭头指向的点。
        color - 线条颜色。
        thickness - 线条粗细。
      • arrowedLine

        public static void arrowedLine​(Mat img,
                                       Point pt1,
                                       Point pt2,
                                       Scalar color)
        绘制一个指向第二个点的箭头线段。函数 cv::arrowedLine 在图像中绘制 pt1 和 pt2 点之间的箭头。另请参见 #line。
        参数
        img - 图像。
        pt1 - 箭头开始的点。
        pt2 - 箭头指向的点。
        color - 线条颜色。
      • rectangle

        public static void rectangle​(Mat img,
                                     Point pt1,
                                     Point pt2,
                                     Scalar color,
                                     int thickness,
                                     int lineType,
                                     int shift)
        绘制简单、粗体或填充的直角矩形。函数 cv::rectangle 绘制一个矩形轮廓或一个由 pt1 和 pt2 定义的相反角的填充矩形。
        参数
        img - 图像。
        pt1 - 矩形的顶点。
        pt2 - 与 pt1 相对的矩形顶点。
        color - 矩形颜色或亮度(灰度图像)。
        thickness - 构成矩形的线条粗细。负值(如 #FILLED)表示函数应绘制一个填充矩形。
        lineType - 线条类型。参见 #LineTypes
        shift - 点坐标中的小数位数。
      • rectangle

        public static void rectangle​(Mat img,
                                     Point pt1,
                                     Point pt2,
                                     Scalar color,
                                     int thickness,
                                     int lineType)
        绘制简单、粗体或填充的直角矩形。函数 cv::rectangle 绘制一个矩形轮廓或一个由 pt1 和 pt2 定义的相反角的填充矩形。
        参数
        img - 图像。
        pt1 - 矩形的顶点。
        pt2 - 与 pt1 相对的矩形顶点。
        color - 矩形颜色或亮度(灰度图像)。
        thickness - 构成矩形的线条粗细。负值(如 #FILLED)表示函数应绘制一个填充矩形。
        lineType - 线条类型。参见 #LineTypes
      • rectangle

        public static void rectangle​(Mat img,
                                     Point pt1,
                                     Point pt2,
                                     Scalar color,
                                     int thickness)
        绘制简单、粗体或填充的直角矩形。函数 cv::rectangle 绘制一个矩形轮廓或一个由 pt1 和 pt2 定义的相反角的填充矩形。
        参数
        img - 图像。
        pt1 - 矩形的顶点。
        pt2 - 与 pt1 相对的矩形顶点。
        color - 矩形颜色或亮度(灰度图像)。
        thickness - 构成矩形的线条粗细。负值(如 #FILLED)表示函数应绘制一个填充矩形。
      • rectangle

        public static void rectangle​(Mat img,
                                     Point pt1,
                                     Point pt2,
                                     Scalar color)
        绘制简单、粗体或填充的直角矩形。函数 cv::rectangle 绘制一个矩形轮廓或一个由 pt1 和 pt2 定义的相反角的填充矩形。
        参数
        img - 图像。
        pt1 - 矩形的顶点。
        pt2 - 与 pt1 相对的矩形顶点。
        color - 矩形颜色或亮度(灰度图像)。表示函数应绘制一个填充矩形。
      • rectangle

        public static void rectangle​(Mat img,
                                     Rect rec,
                                     Scalar color,
                                     int thickness,
                                     int lineType,
                                     int shift)
        使用 `rec` 参数作为绘制矩形的替代规范: `r.tl()` 和 `r.br()-Point(1,1)` 是相对的角。(use rec parameter as alternative specification of the drawn rectangle: `r.tl() and r.br()-Point(1,1)` are opposite corners)
        参数
        img - 自动生成
        rec - 自动生成
        color - 自动生成
        thickness - 自动生成
        lineType - 自动生成
        shift - 自动生成
      • rectangle

        public static void rectangle​(Mat img,
                                     Rect rec,
                                     Scalar color,
                                     int thickness,
                                     int lineType)
        使用 `rec` 参数作为绘制矩形的替代规范: `r.tl()` 和 `r.br()-Point(1,1)` 是相对的角。(use rec parameter as alternative specification of the drawn rectangle: `r.tl() and r.br()-Point(1,1)` are opposite corners)
        参数
        img - 自动生成
        rec - 自动生成
        color - 自动生成
        thickness - 自动生成
        lineType - 自动生成
      • rectangle

        public static void rectangle​(Mat img,
                                     Rect rec,
                                     Scalar color,
                                     int thickness)
        使用 `rec` 参数作为绘制矩形的替代规范: `r.tl()` 和 `r.br()-Point(1,1)` 是相对的角。(use rec parameter as alternative specification of the drawn rectangle: `r.tl() and r.br()-Point(1,1)` are opposite corners)
        参数
        img - 自动生成
        rec - 自动生成
        color - 自动生成
        thickness - 自动生成
      • rectangle

        public static void rectangle​(Mat img,
                                     Rect rec,
                                     Scalar color)
        使用 `rec` 参数作为绘制矩形的替代规范: `r.tl()` 和 `r.br()-Point(1,1)` 是相对的角。(use rec parameter as alternative specification of the drawn rectangle: `r.tl() and r.br()-Point(1,1)` are opposite corners)
        参数
        img - 自动生成
        rec - 自动生成
        color - 自动生成
      • circle

        public static void circle​(Mat img,
                                  Point center,
                                  int radius,
                                  Scalar color,
                                  int thickness,
                                  int lineType,
                                  int shift)
        绘制一个圆。函数 cv::circle 绘制一个具有给定中心和半径的简单圆或填充圆。
        参数
        img - 绘制圆的图像。
        center - 圆的中心。
        radius - 圆的半径。
        color - 圆的颜色。
        thickness - 圆轮廓的粗细,如果为正。负值(如 #FILLED)表示要绘制一个填充圆。
        lineType - 圆边界的类型。参见 #LineTypes
        shift - 中心坐标和半径值中的小数位数。
      • circle

        public static void circle​(Mat img,
                                  Point center,
                                  int radius,
                                  Scalar color,
                                  int thickness,
                                  int lineType)
        绘制一个圆。函数 cv::circle 绘制一个具有给定中心和半径的简单圆或填充圆。
        参数
        img - 绘制圆的图像。
        center - 圆的中心。
        radius - 圆的半径。
        color - 圆的颜色。
        thickness - 圆轮廓的粗细,如果为正。负值(如 #FILLED)表示要绘制一个填充圆。
        lineType - 圆边界的类型。参见 #LineTypes
      • circle

        public static void circle​(Mat img,
                                  Point center,
                                  int radius,
                                  Scalar color,
                                  int thickness)
        绘制一个圆。函数 cv::circle 绘制一个具有给定中心和半径的简单圆或填充圆。
        参数
        img - 绘制圆的图像。
        center - 圆的中心。
        radius - 圆的半径。
        color - 圆的颜色。
        thickness - 圆轮廓的粗细,如果为正。负值(如 #FILLED)表示要绘制一个填充圆。
      • circle

        public static void circle​(Mat img,
                                  Point center,
                                  int radius,
                                  Scalar color)
        绘制一个圆。函数 cv::circle 绘制一个具有给定中心和半径的简单圆或填充圆。
        参数
        img - 绘制圆的图像。
        center - 圆的中心。
        radius - 圆的半径。
        color - 圆的颜色。表示要绘制一个填充圆。
      • ellipse

        public static void ellipse​(Mat img,
                                   Point center,
                                   Size axes,
                                   double angle,
                                   double startAngle,
                                   double endAngle,
                                   Scalar color,
                                   int thickness,
                                   int lineType,
                                   int shift)
        绘制简单或粗体的椭圆弧或填充椭圆扇区。具有更多参数的函数 cv::ellipse 绘制椭圆轮廓、填充椭圆、椭圆弧或填充椭圆扇区。绘图代码使用一般参数形式。使用分段线性曲线来近似椭圆弧边界。如果您需要更多对椭圆渲染的控制,可以使用 #ellipse2Poly 检索曲线,然后使用 #polylines 进行渲染或使用 #fillPoly 进行填充。如果您使用函数的第一种变体并希望绘制整个椭圆而不是圆弧,请将 startAngle=0endAngle=360 传递。如果 startAngle 大于 endAngle,则会交换它们。下图解释了绘制蓝色圆弧的参数含义。 ![Parameters of Elliptic Arc](pics/ellipse.svg)
        参数
        img - 图像。
        center - 椭圆的中心。
        axes - 椭圆主轴尺寸的一半。
        angle - 椭圆旋转角度(度)。
        startAngle - 椭圆弧的起始角度(度)。
        endAngle - 椭圆弧的结束角度(度)。
        color - 椭圆的颜色。
        thickness - 椭圆弧轮廓的粗细,如果为正。否则,表示要绘制一个填充的椭圆扇区。
        lineType - 椭圆边界的类型。参见 #LineTypes
        shift - 中心坐标和轴值中的小数位数。
      • ellipse

        public static void ellipse​(Mat img,
                                   Point center,
                                   Size axes,
                                   double angle,
                                   double startAngle,
                                   double endAngle,
                                   Scalar color,
                                   int thickness,
                                   int lineType)
        绘制简单或粗体的椭圆弧或填充椭圆扇区。具有更多参数的函数 cv::ellipse 绘制椭圆轮廓、填充椭圆、椭圆弧或填充椭圆扇区。绘图代码使用一般参数形式。使用分段线性曲线来近似椭圆弧边界。如果您需要更多对椭圆渲染的控制,可以使用 #ellipse2Poly 检索曲线,然后使用 #polylines 进行渲染或使用 #fillPoly 进行填充。如果您使用函数的第一种变体并希望绘制整个椭圆而不是圆弧,请将 startAngle=0endAngle=360 传递。如果 startAngle 大于 endAngle,则会交换它们。下图解释了绘制蓝色圆弧的参数含义。 ![Parameters of Elliptic Arc](pics/ellipse.svg)
        参数
        img - 图像。
        center - 椭圆的中心。
        axes - 椭圆主轴尺寸的一半。
        angle - 椭圆旋转角度(度)。
        startAngle - 椭圆弧的起始角度(度)。
        endAngle - 椭圆弧的结束角度(度)。
        color - 椭圆的颜色。
        thickness - 椭圆弧轮廓的粗细,如果为正。否则,表示要绘制一个填充的椭圆扇区。
        lineType - 椭圆边界的类型。参见 #LineTypes
      • ellipse

        public static void ellipse​(Mat img,
                                   Point center,
                                   Size axes,
                                   double angle,
                                   double startAngle,
                                   double endAngle,
                                   Scalar color,
                                   int thickness)
        绘制简单或粗体的椭圆弧或填充椭圆扇区。具有更多参数的函数 cv::ellipse 绘制椭圆轮廓、填充椭圆、椭圆弧或填充椭圆扇区。绘图代码使用一般参数形式。使用分段线性曲线来近似椭圆弧边界。如果您需要更多对椭圆渲染的控制,可以使用 #ellipse2Poly 检索曲线,然后使用 #polylines 进行渲染或使用 #fillPoly 进行填充。如果您使用函数的第一种变体并希望绘制整个椭圆而不是圆弧,请将 startAngle=0endAngle=360 传递。如果 startAngle 大于 endAngle,则会交换它们。下图解释了绘制蓝色圆弧的参数含义。 ![Parameters of Elliptic Arc](pics/ellipse.svg)
        参数
        img - 图像。
        center - 椭圆的中心。
        axes - 椭圆主轴尺寸的一半。
        angle - 椭圆旋转角度(度)。
        startAngle - 椭圆弧的起始角度(度)。
        endAngle - 椭圆弧的结束角度(度)。
        color - 椭圆的颜色。
        thickness - 椭圆弧轮廓的粗细,如果为正。否则,表示要绘制一个填充的椭圆扇区。
      • ellipse

        public static void ellipse​(Mat img,
                                   Point center,
                                   Size axes,
                                   double angle,
                                   double startAngle,
                                   double endAngle,
                                   Scalar color)
        绘制简单或粗体的椭圆弧或填充椭圆扇区。具有更多参数的函数 cv::ellipse 绘制椭圆轮廓、填充椭圆、椭圆弧或填充椭圆扇区。绘图代码使用一般参数形式。使用分段线性曲线来近似椭圆弧边界。如果您需要更多对椭圆渲染的控制,可以使用 #ellipse2Poly 检索曲线,然后使用 #polylines 进行渲染或使用 #fillPoly 进行填充。如果您使用函数的第一种变体并希望绘制整个椭圆而不是圆弧,请将 startAngle=0endAngle=360 传递。如果 startAngle 大于 endAngle,则会交换它们。下图解释了绘制蓝色圆弧的参数含义。 ![Parameters of Elliptic Arc](pics/ellipse.svg)
        参数
        img - 图像。
        center - 椭圆的中心。
        axes - 椭圆主轴尺寸的一半。
        angle - 椭圆旋转角度(度)。
        startAngle - 椭圆弧的起始角度(度)。
        endAngle - 椭圆弧的结束角度(度)。
        color - 椭圆的颜色。表示要绘制一个填充的椭圆扇区。
      • ellipse

        public static void ellipse​(Mat img,
                                   RotatedRect box,
                                   Scalar color,
                                   int thickness,
                                   int lineType)
        参数
        img - 图像。
        box - 通过 RotatedRect 的替代椭圆表示。这意味着函数将绘制一个内切于旋转矩形的椭圆。
        color - 椭圆的颜色。
        thickness - 椭圆弧轮廓的粗细,如果为正。否则,表示要绘制一个填充的椭圆扇区。
        lineType - 椭圆边界的类型。参见 #LineTypes
      • ellipse

        public static void ellipse​(Mat img,
                                   RotatedRect box,
                                   Scalar color,
                                   int thickness)
        参数
        img - 图像。
        box - 通过 RotatedRect 的替代椭圆表示。这意味着函数将绘制一个内切于旋转矩形的椭圆。
        color - 椭圆的颜色。
        thickness - 椭圆弧轮廓的粗细,如果为正。否则,表示要绘制一个填充的椭圆扇区。
      • ellipse

        public static void ellipse​(Mat img,
                                   RotatedRect box,
                                   Scalar color)
        参数
        img - 图像。
        box - 通过 RotatedRect 的替代椭圆表示。这意味着函数将绘制一个内切于旋转矩形的椭圆。
        color - 椭圆的颜色。表示要绘制一个填充的椭圆扇区。
      • drawMarker

        public static void drawMarker​(Mat img,
                                      Point position,
                                      Scalar color,
                                      int markerType,
                                      int markerSize,
                                      int thickness,
                                      int line_type)
        在图像的预定义位置绘制标记。函数 cv::drawMarker 在给定位置的图像上绘制标记。目前支持多种标记类型,有关更多信息,请参阅 #MarkerTypes。
        参数
        img - 图像。
        position - 十字准线的定位点。
        color - 线条颜色。
        markerType - 要使用的特定标记类型,参见 #MarkerTypes
        thickness - 线条粗细。
        line_type - 线条类型,参见 #LineTypes
        markerSize - 标记轴的长度 [默认 = 20 像素]
      • drawMarker

        public static void drawMarker​(Mat img,
                                      Point position,
                                      Scalar color,
                                      int markerType,
                                      int markerSize,
                                      int thickness)
        在图像的预定义位置绘制标记。函数 cv::drawMarker 在给定位置的图像上绘制标记。目前支持多种标记类型,有关更多信息,请参阅 #MarkerTypes。
        参数
        img - 图像。
        position - 十字准线的定位点。
        color - 线条颜色。
        markerType - 要使用的特定标记类型,参见 #MarkerTypes
        thickness - 线条粗细。
        markerSize - 标记轴的长度 [默认 = 20 像素]
      • drawMarker

        public static void drawMarker​(Mat img,
                                      Point position,
                                      Scalar color,
                                      int markerType,
                                      int markerSize)
        在图像的预定义位置绘制标记。函数 cv::drawMarker 在给定位置的图像上绘制标记。目前支持多种标记类型,有关更多信息,请参阅 #MarkerTypes。
        参数
        img - 图像。
        position - 十字准线的定位点。
        color - 线条颜色。
        markerType - 要使用的特定标记类型,参见 #MarkerTypes
        markerSize - 标记轴的长度 [默认 = 20 像素]
      • drawMarker

        public static void drawMarker​(Mat img,
                                      Point position,
                                      Scalar color,
                                      int markerType)
        在图像的预定义位置绘制标记。函数 cv::drawMarker 在给定位置的图像上绘制标记。目前支持多种标记类型,有关更多信息,请参阅 #MarkerTypes。
        参数
        img - 图像。
        position - 十字准线的定位点。
        color - 线条颜色。
        markerType - 要使用的特定标记类型,参见 #MarkerTypes
      • drawMarker

        public static void drawMarker​(Mat img,
                                      Point position,
                                      Scalar color)
        在图像的预定义位置绘制标记。函数 cv::drawMarker 在给定位置的图像上绘制标记。目前支持多种标记类型,有关更多信息,请参阅 #MarkerTypes。
        参数
        img - 图像。
        position - 十字准线的定位点。
        color - 线条颜色。
      • fillConvexPoly

        public static void fillConvexPoly​(Mat img,
                                          MatOfPoint points,
                                          Scalar color,
                                          int lineType,
                                          int shift)
        填充一个凸多边形。函数 cv::fillConvexPoly 绘制一个填充的凸多边形。此函数比 #fillPoly 函数快得多。它可以填充不仅是凸多边形,还可以填充任何单调多边形,而没有自相交,即其轮廓与每条水平线(扫描线)最多相交两次的多边形(尽管其最顶部和/或最底部边缘可能是水平的)。
        参数
        img - 图像。
        points - 多边形顶点。
        color - 多边形颜色。
        lineType - 多边形边界的类型。参见 #LineTypes
        shift - 顶点坐标中的小数位数。
      • fillConvexPoly

        public static void fillConvexPoly​(Mat img,
                                          MatOfPoint points,
                                          Scalar color,
                                          int lineType)
        填充一个凸多边形。函数 cv::fillConvexPoly 绘制一个填充的凸多边形。此函数比 #fillPoly 函数快得多。它可以填充不仅是凸多边形,还可以填充任何单调多边形,而没有自相交,即其轮廓与每条水平线(扫描线)最多相交两次的多边形(尽管其最顶部和/或最底部边缘可能是水平的)。
        参数
        img - 图像。
        points - 多边形顶点。
        color - 多边形颜色。
        lineType - 多边形边界的类型。参见 #LineTypes
      • fillConvexPoly

        public static void fillConvexPoly​(Mat img,
                                          MatOfPoint points,
                                          Scalar color)
        填充一个凸多边形。函数 cv::fillConvexPoly 绘制一个填充的凸多边形。此函数比 #fillPoly 函数快得多。它可以填充不仅是凸多边形,还可以填充任何单调多边形,而没有自相交,即其轮廓与每条水平线(扫描线)最多相交两次的多边形(尽管其最顶部和/或最底部边缘可能是水平的)。
        参数
        img - 图像。
        points - 多边形顶点。
        color - 多边形颜色。
      • fillPoly

        public static void fillPoly​(Mat img,
                                    java.util.List<MatOfPoint> pts,
                                    Scalar color,
                                    int lineType,
                                    int shift,
                                    Point offset)
        填充由一个或多个多边形围成的区域。函数 cv::fillPoly 填充由多个多边形轮廓围成的区域。该函数可以填充复杂的区域,例如带有孔的区域、具有自相交的轮廓(其部分)等。
        参数
        img - 图像。
        pts - 多边形数组,其中每个多边形表示为点数组。
        color - 多边形颜色。
        lineType - 多边形边界的类型。参见 #LineTypes
        shift - 顶点坐标中的小数位数。
        offset - 所有轮廓点的可选偏移量。
      • fillPoly

        public static void fillPoly​(Mat img,
                                    java.util.List<MatOfPoint> pts,
                                    Scalar color,
                                    int lineType,
                                    int shift)
        填充由一个或多个多边形围成的区域。函数 cv::fillPoly 填充由多个多边形轮廓围成的区域。该函数可以填充复杂的区域,例如带有孔的区域、具有自相交的轮廓(其部分)等。
        参数
        img - 图像。
        pts - 多边形数组,其中每个多边形表示为点数组。
        color - 多边形颜色。
        lineType - 多边形边界的类型。参见 #LineTypes
        shift - 顶点坐标中的小数位数。
      • fillPoly

        public static void fillPoly​(Mat img,
                                    java.util.List<MatOfPoint> pts,
                                    Scalar color,
                                    int lineType)
        填充由一个或多个多边形围成的区域。函数 cv::fillPoly 填充由多个多边形轮廓围成的区域。该函数可以填充复杂的区域,例如带有孔的区域、具有自相交的轮廓(其部分)等。
        参数
        img - 图像。
        pts - 多边形数组,其中每个多边形表示为点数组。
        color - 多边形颜色。
        lineType - 多边形边界的类型。参见 #LineTypes
      • fillPoly

        public static void fillPoly​(Mat img,
                                    java.util.List<MatOfPoint> pts,
                                    Scalar color)
        填充由一个或多个多边形围成的区域。函数 cv::fillPoly 填充由多个多边形轮廓围成的区域。该函数可以填充复杂的区域,例如带有孔的区域、具有自相交的轮廓(其部分)等。
        参数
        img - 图像。
        pts - 多边形数组,其中每个多边形表示为点数组。
        color - 多边形颜色。
      • polylines

        public static void polylines​(Mat img,
                                     java.util.List<MatOfPoint> pts,
                                     boolean isClosed,
                                     Scalar color,
                                     int thickness,
                                     int lineType,
                                     int shift)
        绘制多条多边形曲线。
        参数
        img - 图像。
        pts - 多边形曲线数组。
        isClosed - 指示绘制的多边形是否封闭的标志。如果它们被封闭,函数将绘制一条从每条曲线的最后一个顶点到其第一个顶点的线。
        color - 多边形的颜色。
        thickness - 多边形边缘的粗细。
        lineType - 线段的类型。参见 #LineTypes
        shift - 顶点坐标中的小数位数。函数 cv::polylines 绘制一条或多条多边形曲线。
      • polylines

        public static void polylines​(Mat img,
                                     java.util.List<MatOfPoint> pts,
                                     boolean isClosed,
                                     Scalar color,
                                     int thickness,
                                     int lineType)
        绘制多条多边形曲线。
        参数
        img - 图像。
        pts - 多边形曲线数组。
        isClosed - 指示绘制的多边形是否封闭的标志。如果它们被封闭,函数将绘制一条从每条曲线的最后一个顶点到其第一个顶点的线。
        color - 多边形的颜色。
        thickness - 多边形边缘的粗细。
        lineType - 线段的类型。参见 #LineTypes 函数 cv::polylines 绘制一条或多条多边形曲线。
      • polylines

        public static void polylines​(Mat img,
                                     java.util.List<MatOfPoint> pts,
                                     boolean isClosed,
                                     Scalar color,
                                     int thickness)
        绘制多条多边形曲线。
        参数
        img - 图像。
        pts - 多边形曲线数组。
        isClosed - 指示绘制的多边形是否封闭的标志。如果它们被封闭,函数将绘制一条从每条曲线的最后一个顶点到其第一个顶点的线。
        color - 多边形的颜色。
        thickness - 多边形边缘的粗细。函数 cv::polylines 绘制一条或多条多边形曲线。
      • polylines

        public static void polylines​(Mat img,
                                     java.util.List<MatOfPoint> pts,
                                     boolean isClosed,
                                     Scalar color)
        绘制多条多边形曲线。
        参数
        img - 图像。
        pts - 多边形曲线数组。
        isClosed - 指示绘制的多边形是否封闭的标志。如果它们被封闭,函数将绘制一条从每条曲线的最后一个顶点到其第一个顶点的线。
        color - 多边形的颜色。函数 cv::polylines 绘制一条或多条多边形曲线。
      • drawContours

        public static void drawContours​(Mat image,
                                        java.util.List<MatOfPoint> contours,
                                        int contourIdx,
                                        Scalar color,
                                        int thickness,
                                        int lineType,
                                        Mat hierarchy,
                                        int maxLevel,
                                        Point offset)
        绘制轮廓的轮廓或填充的轮廓。如果 \(\texttt{thickness} \ge 0\),函数会在图像中绘制轮廓的轮廓;如果 \(\texttt{thickness}<0\),则填充由轮廓围成的区域。下面的示例展示了如何从二值图像中检索连通分量并对其进行标记:: INCLUDE: snippets/imgproc_drawContours.cpp
        参数
        image - 目标图像。
        contours - 所有输入轮廓。每个轮廓存储为点向量。
        contourIdx - 指定要绘制的轮廓的参数。如果为负,则绘制所有轮廓。
        color - 轮廓的颜色。
        thickness - 绘制轮廓的线条粗细。如果为负(例如,thickness=#FILLED),则绘制轮廓的内部。
        lineType - 线条连通性。参见 #LineTypes
        hierarchy - 关于层次结构的可选信息。仅在您想绘制部分轮廓时需要(参见 maxLevel)。
        maxLevel - 要绘制的轮廓的最大级别。如果为 0,则仅绘制指定的轮廓。如果为 1,则函数绘制该轮廓以及所有嵌套的轮廓。如果为 2,则函数绘制该轮廓、所有嵌套的轮廓、所有嵌套的嵌套轮廓,依此类推。此参数仅在存在层次结构时才会被考虑。
        offset - 可选的轮廓偏移参数。通过指定的 \(\texttt{offset}=(dx,dy)\) 偏移所有绘制的轮廓。 注意: 当 thickness=#FILLED 时,即使没有提供层次结构数据,该函数也能正确处理带有孔的连通分量。这是通过使用奇偶规则分析所有轮廓来实现的。如果您有一个单独检索的轮廓的联合集合,这可能会导致错误的结果。为了解决这个问题,您需要为每个子轮廓组单独调用 #drawContours,或者使用 contourIdx 参数遍历集合。
      • drawContours

        public static void drawContours​(Mat image,
                                        java.util.List<MatOfPoint> contours,
                                        int contourIdx,
                                        Scalar color,
                                        int thickness,
                                        int lineType,
                                        Mat hierarchy,
                                        int maxLevel)
        绘制轮廓的轮廓或填充的轮廓。如果 \(\texttt{thickness} \ge 0\),函数会在图像中绘制轮廓的轮廓;如果 \(\texttt{thickness}<0\),则填充由轮廓围成的区域。下面的示例展示了如何从二值图像中检索连通分量并对其进行标记:: INCLUDE: snippets/imgproc_drawContours.cpp
        参数
        image - 目标图像。
        contours - 所有输入轮廓。每个轮廓存储为点向量。
        contourIdx - 指定要绘制的轮廓的参数。如果为负,则绘制所有轮廓。
        color - 轮廓的颜色。
        thickness - 绘制轮廓的线条粗细。如果为负(例如,thickness=#FILLED),则绘制轮廓的内部。
        lineType - 线条连通性。参见 #LineTypes
        hierarchy - 关于层次结构的可选信息。仅在您想绘制部分轮廓时需要(参见 maxLevel)。
        maxLevel - 要绘制的轮廓的最大级别。如果为 0,则仅绘制指定的轮廓。如果为 1,则函数绘制该轮廓以及所有嵌套的轮廓。如果为 2,则函数绘制该轮廓、所有嵌套的轮廓、所有嵌套的嵌套轮廓,依此类推。此参数仅在存在层次结构时才会被考虑。 \(\texttt{offset}=(dx,dy)\)。 注意: 当 thickness=#FILLED 时,即使没有提供层次结构数据,该函数也能正确处理带有孔的连通分量。这是通过使用奇偶规则分析所有轮廓来实现的。如果您有一个单独检索的轮廓的联合集合,这可能会导致错误的结果。为了解决这个问题,您需要为每个子轮廓组单独调用 #drawContours,或者使用 contourIdx 参数遍历集合。
      • drawContours

        public static void drawContours​(Mat image,
                                        java.util.List<MatOfPoint> contours,
                                        int contourIdx,
                                        Scalar color,
                                        int thickness,
                                        int lineType,
                                        Mat hierarchy)
        绘制轮廓的轮廓或填充的轮廓。如果 \(\texttt{thickness} \ge 0\),函数会在图像中绘制轮廓的轮廓;如果 \(\texttt{thickness}<0\),则填充由轮廓围成的区域。下面的示例展示了如何从二值图像中检索连通分量并对其进行标记:: INCLUDE: snippets/imgproc_drawContours.cpp
        参数
        image - 目标图像。
        contours - 所有输入轮廓。每个轮廓存储为点向量。
        contourIdx - 指定要绘制的轮廓的参数。如果为负,则绘制所有轮廓。
        color - 轮廓的颜色。
        thickness - 绘制轮廓的线条粗细。如果为负(例如,thickness=#FILLED),则绘制轮廓的内部。
        lineType - 线条连通性。参见 #LineTypes
        hierarchy - 关于层次结构的可选信息。仅在您想绘制部分轮廓时需要(参见 maxLevel)。如果为 1,则函数绘制该轮廓以及所有嵌套的轮廓。如果为 2,则函数绘制该轮廓、所有嵌套的轮廓、所有嵌套的嵌套轮廓,依此类推。此参数仅在存在层次结构时才会被考虑。 \(\texttt{offset}=(dx,dy)\)。 注意: 当 thickness=#FILLED 时,即使没有提供层次结构数据,该函数也能正确处理带有孔的连通分量。这是通过使用奇偶规则分析所有轮廓来实现的。如果您有一个单独检索的轮廓的联合集合,这可能会导致错误的结果。为了解决这个问题,您需要为每个子轮廓组单独调用 #drawContours,或者使用 contourIdx 参数遍历集合。
      • drawContours

        public static void drawContours​(Mat image,
                                        java.util.List<MatOfPoint> contours,
                                        int contourIdx,
                                        Scalar color,
                                        int thickness,
                                        int lineType)
        绘制轮廓的轮廓或填充的轮廓。如果 \(\texttt{thickness} \ge 0\),函数会在图像中绘制轮廓的轮廓;如果 \(\texttt{thickness}<0\),则填充由轮廓围成的区域。下面的示例展示了如何从二值图像中检索连通分量并对其进行标记:: INCLUDE: snippets/imgproc_drawContours.cpp
        参数
        image - 目标图像。
        contours - 所有输入轮廓。每个轮廓存储为点向量。
        contourIdx - 指定要绘制的轮廓的参数。如果为负,则绘制所有轮廓。
        color - 轮廓的颜色。
        thickness - 绘制轮廓的线条粗细。如果为负(例如,thickness=#FILLED),则绘制轮廓的内部。
        lineType - 线条连通性。参见 #LineTypes 某些轮廓(参见 maxLevel)。如果为 1,则函数绘制该轮廓以及所有嵌套的轮廓。如果为 2,则函数绘制该轮廓、所有嵌套的轮廓、所有嵌套的嵌套轮廓,依此类推。此参数仅在存在层次结构时才会被考虑。 \(\texttt{offset}=(dx,dy)\)。 注意: 当 thickness=#FILLED 时,即使没有提供层次结构数据,该函数也能正确处理带有孔的连通分量。这是通过使用奇偶规则分析所有轮廓来实现的。如果您有一个单独检索的轮廓的联合集合,这可能会导致错误的结果。为了解决这个问题,您需要为每个子轮廓组单独调用 #drawContours,或者使用 contourIdx 参数遍历集合。
      • drawContours

        public static void drawContours​(Mat image,
                                        java.util.List<MatOfPoint> contours,
                                        int contourIdx,
                                        Scalar color,
                                        int thickness)
        绘制轮廓的轮廓或填充的轮廓。如果 \(\texttt{thickness} \ge 0\),函数会在图像中绘制轮廓的轮廓;如果 \(\texttt{thickness}<0\),则填充由轮廓围成的区域。下面的示例展示了如何从二值图像中检索连通分量并对其进行标记:: INCLUDE: snippets/imgproc_drawContours.cpp
        参数
        image - 目标图像。
        contours - 所有输入轮廓。每个轮廓存储为点向量。
        contourIdx - 指定要绘制的轮廓的参数。如果为负,则绘制所有轮廓。
        color - 轮廓的颜色。
        thickness - 绘制轮廓的线条粗细。如果为负(例如,thickness=#FILLED),则绘制轮廓的内部。某些轮廓(参见 maxLevel)。如果为 1,则函数绘制该轮廓以及所有嵌套的轮廓。如果为 2,则函数绘制该轮廓、所有嵌套的轮廓、所有嵌套的嵌套轮廓,依此类推。此参数仅在存在层次结构时才会被考虑。 \(\texttt{offset}=(dx,dy)\)。 注意: 当 thickness=#FILLED 时,即使没有提供层次结构数据,该函数也能正确处理带有孔的连通分量。这是通过使用奇偶规则分析所有轮廓来实现的。如果您有一个单独检索的轮廓的联合集合,这可能会导致错误的结果。为了解决这个问题,您需要为每个子轮廓组单独调用 #drawContours,或者使用 contourIdx 参数遍历集合。
      • drawContours

        public static void drawContours​(Mat image,
                                        java.util.List<MatOfPoint> contours,
                                        int contourIdx,
                                        Scalar color)
        绘制轮廓的轮廓或填充的轮廓。如果 \(\texttt{thickness} \ge 0\),函数会在图像中绘制轮廓的轮廓;如果 \(\texttt{thickness}<0\),则填充由轮廓围成的区域。下面的示例展示了如何从二值图像中检索连通分量并对其进行标记:: INCLUDE: snippets/imgproc_drawContours.cpp
        参数
        image - 目标图像。
        contours - 所有输入轮廓。每个轮廓存储为点向量。
        contourIdx - 指定要绘制的轮廓的参数。如果为负,则绘制所有轮廓。
        color - 轮廓的颜色。thickness=#FILLED),则绘制轮廓的内部。某些轮廓(参见 maxLevel)。如果为 1,则函数绘制该轮廓以及所有嵌套的轮廓。如果为 2,则函数绘制该轮廓、所有嵌套的轮廓、所有嵌套的嵌套轮廓,依此类推。此参数仅在存在层次结构时才会被考虑。 \(\texttt{offset}=(dx,dy)\)。 注意: 当 thickness=#FILLED 时,即使没有提供层次结构数据,该函数也能正确处理带有孔的连通分量。这是通过使用奇偶规则分析所有轮廓来实现的。如果您有一个单独检索的轮廓的联合集合,这可能会导致错误的结果。为了解决这个问题,您需要为每个子轮廓组单独调用 #drawContours,或者使用 contourIdx 参数遍历集合。
      • clipLine

        public static boolean clipLine​(Rect imgRect,
                                       Point pt1,
                                       Point pt2)
        参数
        imgRect - 图像矩形。
        pt1 - 第一条线点。
        pt2 - 第二条线点。
        返回
        自动生成
      • ellipse2Poly

        public static void ellipse2Poly​(Point center,
                                        Size axes,
                                        int angle,
                                        int arcStart,
                                        int arcEnd,
                                        int delta,
                                        MatOfPoint pts)
        用折线近似椭圆弧。函数 ellipse2Poly 计算近似指定椭圆弧的折线的顶点。它由 #ellipse 使用。如果 arcStart 大于 arcEnd,则它们会被交换。
        参数
        center - 圆弧的中心。
        axes - 椭圆主轴尺寸的一半。有关详细信息,请参见 #ellipse。
        angle - 椭圆的旋转角度(度)。有关详细信息,请参见 #ellipse。
        arcStart - 椭圆弧的起始角度(度)。
        arcEnd - 椭圆弧的结束角度(度)。
        delta - 相邻折线顶点之间的角度。它定义了近似精度。
        pts - 折线顶点的输出向量。
      • putText

        public static void putText​(Mat img,
                                   java.lang.String text,
                                   Point org,
                                   int fontFace,
                                   double fontScale,
                                   Scalar color,
                                   int thickness,
                                   int lineType,
                                   boolean bottomLeftOrigin)
        绘制文本字符串。函数 cv::putText 在图像中渲染指定的文本字符串。无法使用指定字体渲染的符号将替换为问号。有关文本渲染代码示例,请参阅 #getTextSize。fontScale 参数是一个比例因子,将乘以基本字体大小。
        • 当 scale > 1 时,文本会放大。
        • 当 0 < scale < 1 时,文本会缩小。
        • 当 scale < 0 时,文本会镜像或反转。
        参数
        img - 图像。
        text - 要绘制的文本字符串。
        org - 图像中文本字符串的左下角。
        fontFace - 字体类型,参见 #HersheyFonts。
        fontScale - 字体比例因子,将乘以字体特定的基本大小。
        color - 文本颜色。
        thickness - 用于绘制文本的线条粗细。
        lineType - 线条类型。参见 #LineTypes
        bottomLeftOrigin - 如果为 true,则图像数据原点位于左下角。否则,位于左上角。
      • putText

        public static void putText​(Mat img,
                                   java.lang.String text,
                                   Point org,
                                   int fontFace,
                                   double fontScale,
                                   Scalar color,
                                   int thickness,
                                   int lineType)
        绘制文本字符串。函数 cv::putText 在图像中渲染指定的文本字符串。无法使用指定字体渲染的符号将替换为问号。有关文本渲染代码示例,请参阅 #getTextSize。fontScale 参数是一个比例因子,将乘以基本字体大小。
        • 当 scale > 1 时,文本会放大。
        • 当 0 < scale < 1 时,文本会缩小。
        • 当 scale < 0 时,文本会镜像或反转。
        参数
        img - 图像。
        text - 要绘制的文本字符串。
        org - 图像中文本字符串的左下角。
        fontFace - 字体类型,参见 #HersheyFonts。
        fontScale - 字体比例因子,将乘以字体特定的基本大小。
        color - 文本颜色。
        thickness - 用于绘制文本的线条粗细。
        lineType - 线条类型。参见 #LineTypes 位于左上角。
      • putText

        public static void putText​(Mat img,
                                   java.lang.String text,
                                   Point org,
                                   int fontFace,
                                   double fontScale,
                                   Scalar color,
                                   int thickness)
        绘制文本字符串。函数 cv::putText 在图像中渲染指定的文本字符串。无法使用指定字体渲染的符号将替换为问号。有关文本渲染代码示例,请参阅 #getTextSize。fontScale 参数是一个比例因子,将乘以基本字体大小。
        • 当 scale > 1 时,文本会放大。
        • 当 0 < scale < 1 时,文本会缩小。
        • 当 scale < 0 时,文本会镜像或反转。
        参数
        img - 图像。
        text - 要绘制的文本字符串。
        org - 图像中文本字符串的左下角。
        fontFace - 字体类型,参见 #HersheyFonts。
        fontScale - 字体比例因子,将乘以字体特定的基本大小。
        color - 文本颜色。
        thickness - 用于绘制文本的线条粗细。位于左上角。
      • putText

        public static void putText​(Mat img,
                                   java.lang.String text,
                                   Point org,
                                   int fontFace,
                                   double fontScale,
                                   Scalar color)
        绘制文本字符串。函数 cv::putText 在图像中渲染指定的文本字符串。无法使用指定字体渲染的符号将替换为问号。有关文本渲染代码示例,请参阅 #getTextSize。fontScale 参数是一个比例因子,将乘以基本字体大小。
        • 当 scale > 1 时,文本会放大。
        • 当 0 < scale < 1 时,文本会缩小。
        • 当 scale < 0 时,文本会镜像或反转。
        参数
        img - 图像。
        text - 要绘制的文本字符串。
        org - 图像中文本字符串的左下角。
        fontFace - 字体类型,参见 #HersheyFonts。
        fontScale - 字体比例因子,将乘以字体特定的基本大小。
        color - 文本颜色。位于左上角。
      • getFontScaleFromHeight

        public static double getFontScaleFromHeight​(int fontFace,
                                                    int pixelHeight,
                                                    int thickness)
        计算为达到给定像素高度所需的特定字体缩放比例。
        参数
        fontFace - 要使用的字体,参见 cv::HersheyFonts。
        pixelHeight - 用于计算 fontScale 的像素高度
        thickness - 用于渲染文本的线条粗细。有关详细信息,请参阅 putText。
        返回
        用于 cv::putText 的字体大小 SEE: cv::putText
      • getFontScaleFromHeight

        public static double getFontScaleFromHeight​(int fontFace,
                                                    int pixelHeight)
        计算为达到给定像素高度所需的特定字体缩放比例。
        参数
        fontFace - 要使用的字体,参见 cv::HersheyFonts。
        pixelHeight - 用于计算 fontScale 的像素高度
        返回
        用于 cv::putText 的字体大小 SEE: cv::putText
      • HoughLinesWithAccumulator

        public static void HoughLinesWithAccumulator​(Mat image,
                                                     Mat lines,
                                                     double rho,
                                                     double theta,
                                                     int threshold,
                                                     double srn,
                                                     double stn,
                                                     double min_theta,
                                                     double max_theta,
                                                     boolean use_edgeval)
        使用标准霍夫变换和累加器在二值图像中查找直线。 注意: 此函数仅用于绑定。在 C++ 代码中使用原始函数 SEE: HoughLines
        参数
        image - 自动生成
        lines - 自动生成
        rho - 自动生成
        theta - 自动生成
        threshold - 自动生成
        srn - 自动生成
        stn - 自动生成
        min_theta - 自动生成
        max_theta - 自动生成
        use_edgeval - 自动生成
      • HoughLinesWithAccumulator

        public static void HoughLinesWithAccumulator​(Mat image,
                                                     Mat lines,
                                                     double rho,
                                                     double theta,
                                                     int threshold,
                                                     double srn,
                                                     double stn,
                                                     double min_theta,
                                                     double max_theta)
        使用标准霍夫变换和累加器在二值图像中查找直线。 注意: 此函数仅用于绑定。在 C++ 代码中使用原始函数 SEE: HoughLines
        参数
        image - 自动生成
        lines - 自动生成
        rho - 自动生成
        theta - 自动生成
        threshold - 自动生成
        srn - 自动生成
        stn - 自动生成
        min_theta - 自动生成
        max_theta - 自动生成
      • HoughLinesWithAccumulator

        public static void HoughLinesWithAccumulator​(Mat image,
                                                     Mat lines,
                                                     double rho,
                                                     double theta,
                                                     int threshold,
                                                     double srn,
                                                     double stn,
                                                     double min_theta)
        使用标准霍夫变换和累加器在二值图像中查找直线。 注意: 此函数仅用于绑定。在 C++ 代码中使用原始函数 SEE: HoughLines
        参数
        image - 自动生成
        lines - 自动生成
        rho - 自动生成
        theta - 自动生成
        threshold - 自动生成
        srn - 自动生成
        stn - 自动生成
        min_theta - 自动生成
      • HoughLinesWithAccumulator

        public static void HoughLinesWithAccumulator​(Mat image,
                                                     Mat lines,
                                                     double rho,
                                                     double theta,
                                                     int threshold,
                                                     double srn,
                                                     double stn)
        使用标准霍夫变换和累加器在二值图像中查找直线。 注意: 此函数仅用于绑定。在 C++ 代码中使用原始函数 SEE: HoughLines
        参数
        image - 自动生成
        lines - 自动生成
        rho - 自动生成
        theta - 自动生成
        threshold - 自动生成
        srn - 自动生成
        stn - 自动生成
      • HoughLinesWithAccumulator

        public static void HoughLinesWithAccumulator​(Mat image,
                                                     Mat lines,
                                                     double rho,
                                                     double theta,
                                                     int threshold,
                                                     double srn)
        使用标准霍夫变换和累加器在二值图像中查找直线。 注意: 此函数仅用于绑定。在 C++ 代码中使用原始函数 SEE: HoughLines
        参数
        image - 自动生成
        lines - 自动生成
        rho - 自动生成
        theta - 自动生成
        threshold - 自动生成
        srn - 自动生成
      • HoughLinesWithAccumulator

        public static void HoughLinesWithAccumulator​(Mat image,
                                                     Mat lines,
                                                     double rho,
                                                     double theta,
                                                     int threshold)
        使用标准霍夫变换和累加器在二值图像中查找直线。 注意: 此函数仅用于绑定。在 C++ 代码中使用原始函数 SEE: HoughLines
        参数
        image - 自动生成
        lines - 自动生成
        rho - 自动生成
        theta - 自动生成
        threshold - 自动生成
      • HoughCirclesWithAccumulator

        public static void HoughCirclesWithAccumulator​(Mat image,
                                                       Mat circles,
                                                       int method,
                                                       double dp,
                                                       double minDist,
                                                       double param1,
                                                       double param2,
                                                       int minRadius,
                                                       int maxRadius)
        使用霍夫变换和累加器在灰度图像中查找圆。 注意: 此函数仅用于绑定。在 C++ 代码中使用原始函数 SEE: HoughCircles
        参数
        image - 自动生成
        circles - 自动生成
        method - 自动生成
        dp - 自动生成
        minDist - 自动生成
        param1 - 自动生成
        param2 - 自动生成
        minRadius - 自动生成
        maxRadius - 自动生成
      • HoughCirclesWithAccumulator

        public static void HoughCirclesWithAccumulator​(Mat image,
                                                       Mat circles,
                                                       int method,
                                                       double dp,
                                                       double minDist,
                                                       double param1,
                                                       double param2,
                                                       int minRadius)
        使用霍夫变换和累加器在灰度图像中查找圆。 注意: 此函数仅用于绑定。在 C++ 代码中使用原始函数 SEE: HoughCircles
        参数
        image - 自动生成
        circles - 自动生成
        method - 自动生成
        dp - 自动生成
        minDist - 自动生成
        param1 - 自动生成
        param2 - 自动生成
        minRadius - 自动生成
      • HoughCirclesWithAccumulator

        public static void HoughCirclesWithAccumulator​(Mat image,
                                                       Mat circles,
                                                       int method,
                                                       double dp,
                                                       double minDist,
                                                       double param1,
                                                       double param2)
        使用霍夫变换和累加器在灰度图像中查找圆。 注意: 此函数仅用于绑定。在 C++ 代码中使用原始函数 SEE: HoughCircles
        参数
        image - 自动生成
        circles - 自动生成
        method - 自动生成
        dp - 自动生成
        minDist - 自动生成
        param1 - 自动生成
        param2 - 自动生成
      • HoughCirclesWithAccumulator

        public static void HoughCirclesWithAccumulator​(Mat image,
                                                       Mat circles,
                                                       int method,
                                                       double dp,
                                                       double minDist,
                                                       double param1)
        使用霍夫变换和累加器在灰度图像中查找圆。 注意: 此函数仅用于绑定。在 C++ 代码中使用原始函数 SEE: HoughCircles
        参数
        image - 自动生成
        circles - 自动生成
        method - 自动生成
        dp - 自动生成
        minDist - 自动生成
        param1 - 自动生成
      • HoughCirclesWithAccumulator

        public static void HoughCirclesWithAccumulator​(Mat image,
                                                       Mat circles,
                                                       int method,
                                                       double dp,
                                                       double minDist)
        使用霍夫变换和累加器在灰度图像中查找圆。 注意: 此函数仅用于绑定。在 C++ 代码中使用原始函数 SEE: HoughCircles
        参数
        image - 自动生成
        circles - 自动生成
        method - 自动生成
        dp - 自动生成
        minDist - 自动生成
      • getTextSize

        public static Size getTextSize​(java.lang.String text,
                                       int fontFace,
                                       double fontScale,
                                       int thickness,
                                       int[] baseLine)