如何在opencv c ++中制作黑白图像?
Posted
技术标签:
【中文标题】如何在opencv c ++中制作黑白图像?【英文标题】:How to make an image black and white in opencv c++? 【发布时间】:2018-11-06 15:59:24 【问题描述】:实际上,我是opencv
和native C++
概念的完整初学者,所以如果我的问题很简单,请原谅。基本上我想通过使用native C++
将图像转换为Black&White
,因为我试图找到教程但我找不到任何教程。 那么任何人都可以帮我学习这个概念吗?
【问题讨论】:
最好先阅读tutorials 和来自opencv 的文档,您正在寻找的功能是这个:docs.opencv.org/2.4/modules/imgproc/doc/… 和“黑白”很可能是灰度...如果不是这是一个二进制图像,您可以使用阈值实现 :) @api55 非常感谢您的时间和回答 如果您在 android 中有位图并想将其转换为黑白,为什么需要 OpenCV、JNI 和 C++? @AlexCohn 因为我想学习OpenCV
的C++部分@
【参考方案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 应用程序?以上是关于如何在opencv c ++中制作黑白图像?的主要内容,如果未能解决你的问题,请参考以下文章