【问题标题】:How to make an image black and white in opencv c++?如何在opencv c ++中制作黑白图像?
【发布时间】:2018-11-06 15:59:24
【问题描述】:

实际上,我是opencvnative C++ 概念的完整初学者,所以如果我的问题很简单,请原谅。基本上我想通过使用native C++ 将图像转换为Black&White,因为我试图找到教程但我找不到任何教程。 那么任何人都可以帮我学习这个概念吗?

【问题讨论】:

  • 最好先阅读tutorials 和来自opencv 的文档,您正在寻找的功能是这个:docs.opencv.org/2.4/modules/imgproc/doc/… 和“黑白”很可能是灰度...如果不是这是一个二进制图像,您可以使用阈值实现 :)
  • @api55 非常感谢您的时间和回答
  • 如果您在 Android 中有位图并想将其转换为黑白,为什么需要 OpenCV、JNI 和 C++?
  • @AlexCohn 因为我想学习OpenCV的C++部分@

标签: android c++ opencv java-native-interface


【解决方案1】:
cv::Mat colorMat, grayscaleMat, binaryMat;

先转为灰度:

cv::cvtColor(colorMat, grayscaleMat, CV_BGR2GRAY);

然后对灰度图像应用一个二值阈值:

cv::threshold(grayscaleMat, binaryMat, 100, 255, cv::THRESH_BINARY);

另外,您可能需要考虑使用OpenCV4Android SDK

【讨论】:

    【解决方案2】:

    您应该使用 cvtColor 函数。 假设“image”是您的原始照片,“gray_image”是您将存储新灰色照片的变量:

    cvtColor( image, gray_image, CV_BGR2GRAY );
    

    ('image' & 'gray_image' 是 'Mat' 类型)

    【讨论】:

    • 非常感谢您的时间和回答,但请您详细说明 java 和 c++ 部分以及如何将位图传递给native C++
    • @anonymous 不确定您所说的“java 和 c++”是什么意思。您是否正在尝试制作 Android 应用程序?
    猜你喜欢
    • 2022-12-15
    • 1970-01-01
    • 2013-06-23
    • 1970-01-01
    • 2011-11-29
    • 1970-01-01
    • 2011-06-07
    • 2023-03-17
    • 2019-09-17
    相关资源
    最近更新 更多