透明像素在opencvc++(当使用GrabCut)
Transparent pixels in OpenCV C++ (when using GrabCut)
我正在使用OpenCV的GrabCut实现,以便从图像中删除背景。但是现在新的背景是黑色的。有没有办法让它透明?现在这部分代码看起来像这样:
Mat binMask( image.size(), CV_8UC1 );
binMask = mask & 1;
image.copyTo( result, binMask );
我可以用透明像素填充binMask吗?我已经阅读了一些关于叠加图像的教程,但是我不需要在我的图片前面有一个透明的图像,而是在后面。我希望有人能帮忙。很多谢谢!
由于您使用的是8UC1图像类型,因此不可能具有透明像素。只有当你有一个alpha通道,alpha设置为0时才允许这样做:你必须使用一个4通道的图像(3个用于颜色,1个用于alpha通道)。alpha通道支持PNG等文件格式,但不支持JPG。
在遮罩的情况下,你不需要顺便使用透明像素,因为黑色的像素实际上对应于0,当你混合两个图像时,它们不会影响结果(例如addWeighted,或者bitwise_or操作)。
相关文章:
- 如何在不产生任何垃圾的情况下获得C中的像素
- 在C++中使用GDAL可以将图像的像素坐标转换为lat,long吗
- 如何在24位SDL_Surface上设置像素的颜色
- 如何从SDL_Surface获取特定像素的颜色
- 如何将CMSampleBufferRef/CIImage/UIImage转换为像素,例如uint8_t[]
- 在C++中查找像素 RGB 数据的最快方法是什么?
- 是否可以从 OpenGL 缓冲区获取原始大小的像素?
- 选择基于另一个垫子的非零像素的cv::Mat的一部分?
- 如何使用 sdl2 快速绘制像素网格?
- 如何在C++中进行像素操作? - Linux
- 他们如何将红外锁定像素转换为镜头前方 1m 的正常平面上的位置
- 访问随机图像像素的快速方法,最多一次
- OpenCV 像素访问点与 at() - 不同的值
- 如何使用 freetype2 访问单色位图中的像素状态
- 尝试渲染像素坐标时,简单线条渲染失败
- 计算另一个图像像素满足条件的像素值的平均值
- 如何返回定义良好的内存部分?例如来自图像数据的像素的颜色值
- 在Qt-cpp中通过像素获取QString的子字符串
- 有效地计算像素到其对应核线的距离
- 透明像素在opencvc++(当使用GrabCut)