【问题标题】:How to use the OTSU Threshold in opencv - input source如何在 opencv 中使用 OTSU 阈值 - 输入源
【发布时间】:2013-12-11 15:29:46
【问题描述】:

我明白这是在opencv中使用otsu的命令:

cvThreshold(src, dst, 128, 255, CV_THRESH_BINARY | CV_THRESH_OTSU);

但是,我不明白 src 和 dst 是什么,在 opencv 网站上解释为:

输入数组(单通道、8 位或 32 位浮点)。

什么是 8 位或 32 位浮点单通道数组?

http://docs.opencv.org/modules/imgproc/doc/miscellaneous_transformations.html#threshold

【问题讨论】:

  • 那将是你的形象......
  • src 是源图像,所以你的输入图像(必须是灰度)。 dst 是创建阈值图像的位置,因此这是您想要获取的目标和图像。那个(dst)通常可能只是一个 cv::Mat 变量,还没有分配任何像素数据(大小/类型)。

标签: c++ opencv


【解决方案1】:

单通道表示灰度。 8 位表示无符号字符(OpenCV 中的 CV_8U)。 32bit 表示浮点数(OpenCV 中的 CV_32F)

【讨论】:

    【解决方案2】:

    我的问题是以正确的格式获取图像,但我发现至少有两种方法:

    1. CvCapture* capture = cvCaptureFromFile("picture.png"); IplImage* frame = cvQueryFrame(capture);

    2。 IplImage* frame = cvLoadImage("picture.png", CV_LOAD_IMAGE_GRAYSCALE);

    我也觉得图片需要先灰度化,但不知道第一个选项该怎么做。无论如何,对于 src 和 dst 这些工作。

    【讨论】:

    • 您可以使用cvCvtColorframe 转换为灰度。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-07
    • 1970-01-01
    • 1970-01-01
    • 2014-04-23
    • 1970-01-01
    • 2019-03-14
    • 1970-01-01
    相关资源
    最近更新 更多