C++ 语义分割可视化

本文介绍了如何使用C++和OpenCV将语义分割的索引图转换成彩色标注图。在实现过程中,作者遇到在读取灰度图像时,OpenCV默认创建了3通道图像的问题。通过使用IMREAD_GRAYSCALE标志正确读取单通道图像。文章提供了单通道和多通道遍历的代码示例,以将语义分割输出转换为可视化结果。
摘要由CSDN通过智能技术生成

语义分割输出索引图如何将其转为彩色的标注图呢? 之前一直是python实现的, 但最近工程上要用到, 就用c++,opencv实现了简单的脚本。

踩得坑:

在写OpenCV程序时,发现通过image = imread(“the path of a image”);的方式读入的灰度图片都是3通道,并且每个通道都完全相同,可以通过打印image.channels()进行测试。

为了正确地读入灰度图像,需要通过image = imread(“the path of a image”, IMREAD_GRAYSCALE);的方式来实现,同样打印image.channels()发现读入的图片只有单通道。
 

基本知识:

方式1: at(i, j)访问

这种方式在Debug模式下的访问速度是最慢的,但是在Release模式下的访问速度也是相当快的,和其他方式相近。

  • 单通道遍历(灰度图像)
cv::Mat image(100 , 100 , CV_8UC1);  
int rows = image.rows;
int cols = image.cols;

for (int i=0; i<rows ; i++)  
{  
    for (int j=0; j<cols ; j++)  
    {  
        image.at<uchar>(i,j) &#
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值