OpenCV从黑白转换为RGB
OpenCV convert from B/W to RGB
我已经将图像从RGB转换为黑白,然后我想将其转换回RGB,但我有一个问题:
我的代码:
int width=zoomedImage->width;
int height=zoomedImage->height;
TempImage=cvCreateImage(cvSize(width,height),IPL_DEPTH_8U,1);
cvCvtColor(zoomedImage, TempImage,CV_RGB2GRAY);
cvThreshold( TempImage, TempImage,128,256,CV_THRESH_BINARY);
cvCvtColor( TempImage,zoomedImage,CV_GRAY2RGB);
this->pictureBox1->Image=(gcnew
System::Drawing::Bitmap(zoomedImage->width,zoomedImage->height,zoomedImage->widthStep,
System::Drawing::Imaging::PixelFormat::Format24bppRgb,(System::IntPtr)zoomedImage->imageData));
在这里我将 zoomedImage 显示为黑白图像,在另一个操作中,我想将 zoomedImage 显示为 RGB 图像这里的主要问题是我无法更改将要绘制的图像,因为我的代码的另一部分取决于这个序列,我在另一个动作中写道:
cvCvtColor( TempImage,zoomedImage,CV_GRAY2RGB);
this->pictureBox1->Image=(gcnew
System::Drawing::Bitmap(zoomedImage->width,zoomedImage->height,zoomedImage->widthStep,
System::Drawing::Imaging::PixelFormat::Format24bppRgb,(System::IntPtr)zoomedImage->imageData));
但是 zoomedImage 仍然不显示为黑白,我听说当真彩色图像转换为灰色时,它无法再次作为真彩色图像返回,那么CV_GRAY2RGB该怎么办?
将 RGB 图像转换为灰阶图像时,颜色信息将丢失,并且无法再次从灰度级别图像中恢复此信息。
当您尝试将黑白图像转换为RGB时,您只能制作3通道图像,但所有通道都包含相同的强度数据。因此,您将获得具有3个通道的灰度图像。而已。
我已经解决了我的问题,如下所示:
将原始图像转换为黑白
int width=zoomedImage->width;
int height=zoomedImage->height;
ColorSaver=cvCreateImage(cvSize(width,height),zoomedImage->depth,zoomedImage->nChannels);
ColorSaver=cvCloneImage(zoomedImage);
TempImage=cvCreateImage(cvSize(width,height),IPL_DEPTH_8U,1);
cvCvtColor(zoomedImage, TempImage,CV_RGB2GRAY);
cvThreshold( TempImage, TempImage,128,256,CV_THRESH_BINARY);
cvCvtColor( TempImage,zoomedImage,CV_GRAY2RGB);
this->pictureBox1->Image=(gcnew
系统::D rawing::位图(缩放图像->宽度,缩放图像->高度,缩放图像->宽度步长,System::D rawing::Imaging::P ixelFormat::Format24bppRgb,(System::IntPtr(zoomedImage->imageData((;
将原始图像返回到 RGB:
zoomedImage=cvCloneImage(ColorSaver);
this->pictureBox1->Image=(gcnew
System::Drawing::Bitmap( zoomedImage->width, zoomedImage->height, zoomedImage->widthStep,
System::Drawing::Imaging::PixelFormat::Format24bppRgb,(System::IntPtr) zoomedImage->imageData));
相关文章:
- 如何使用 C++将 2D RGB 数组转换为 dds 文件?
- Qmage:如何将灰色图像转换为RGB热图
- 如何将RGB像素缓冲区转换为IRandomAccessStream^
- 为什么延迟太高,即使只是 RGB 到灰色转换 (Vivado HLS)?
- Qmage:使用颜色表从灰度转换为RGB
- 将HSV转换为RGB在OpenCV中失败
- RGB到XYZ,图像转换
- 如何将图像转换为C 中的RGB数据值
- OPENCV:从RGB转换为灰度只有蓝色
- (C语言)将RGB转换为HSV和HSV的算法在两者的范围为0-255范围内
- 从线性RGB转换为XYZ
- JPEG:YCrCb <-> RGB 转换精度
- YUV -> RGB 转换可以硬件加速吗?
- OpenInventor到PCD:无法将RGB转换为十进制
- OpenCV从相机捕获YUYV,无需RGB转换
- 将 RGB 转换为十六进制C++
- 将胶片负RGB转换为正RGB的算法
- 正确YUV422到RGB转换
- 如何在YUV到RGB转换期间垂直翻转缓冲区
- 将单个像素值从RGB转换为YUV420并保存帧- c++