首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >OpenCV返回黑白图像而不是灰度

OpenCV返回黑白图像而不是灰度
EN

Stack Overflow用户
提问于 2017-07-29 11:53:07
回答 1查看 1.1K关注 0票数 0

下面是我对图像进行预处理的尝试。这涉及到以下步骤

  1. 涂上口罩
  2. 裁剪结果
  3. 最后,将像素值缩放到255。

当我试图从第三步回到第二步时,我会得到一个黑白图像,而不是灰度图像。下面是我执行预处理的代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cv::Mat maskCrop(std::string imageName, std::string maskName)
{
    cv::Mat image,mask;
    image = cv::imread( imageName, CV_LOAD_IMAGE_GRAYSCALE);
    mask = cv::imread( maskName,CV_LOAD_IMAGE_GRAYSCALE);
    cv::Mat final_image;
    cv::resize(image, image, mask.size());  // make the size of mask and image same
    
    cv::bitwise_and(image, mask, final_image); //Apply mask
    
    // define rectangular window for cropping
    int offset_x = 1250;  // top left corner, for cropping
    int offset_y = 1550;
    
    cv::Rect roi;
    roi.x = offset_x;
    roi.y = offset_y;
    roi.width = 550;
    roi.height = 650;
    
    // Crop the original image to the defined ROI //
    
    cv::Mat crop = final_image(roi);
   //scale the image
    float beta = 1.0 / 255.0;
    crop *=beta;  // divide the max pixel vaue i.e. 255
    
    //Examinig whether scaling can be undone !!!!
    cv::imwrite("/home/dpk/Desktop/ip-rings/gray_image.jpg",crop*255);
    
    return crop;
}

下面是当我试图按255撤消缩放时得到的输出(步骤3)

以下是预期的输出

是什么导致图像是黑白的而不是灰度的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-29 12:08:42

因为这类数据..。假设crop矩阵类是uchar,当除以255时,输出为0或1(0到254之间的每个强度为0,255将为1),当您在255中的多路输出时,输出将为0和255。所以测试这段代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
.
.
cv::Mat crop = final_image(roi);
crop.convertTo(crop,
               CV_32F,       //New Type
               1.0f/255,     //Scaling
               0);           //offset
cv::imwrite("/home/dpk/Desktop/ip-rings/gray_image.jpg",crop*255);

return crop;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45393464

复制
相关文章
python 写入文件时编码问题
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/10
8790
使用Ring Buffer构建高性能的文件写入程序
最近常收到SOD框架的朋友报告的SOD的SQL日志功能报错:文件句柄丢失。经过分析得知,这些朋友使用SOD框架开发了访问量比较大的系统,由于忘记关闭SQL日志功能所以出现了很高频率的日志写入操作,从而偶然引起错误。后来我建议只记录出错的或者执行时间较长的SQL信息,暂时解决了此问题。但是作为一个热心造轮子的人,一定要看看能不能造一个更好的轮子出来。 前面说的错误原因已经很直白了,就是频繁的日志写入导致的,那么解决方案就是将多次写入操作合并成一次写入操作,并且采用异步写入方式。要保存多次操作的内容就要有一个类
用户1177503
2018/02/26
2.9K0
使用Ring Buffer构建高性能的文件写入程序
为什么在静态方法中不能使用this
在JVM的运行时数据区中有个虚拟机栈(或Java栈),在它的里面是由栈帧'叠加'而成.栈帧由局部变量表,操作数栈,动态连接,方法返回地址等组成.
书唐瑞
2022/06/02
1.9K0
为什么在静态方法中不能使用this
#PY小贴士# 我的文件为何无法写入
1. 搞错了当前目录,自以为是在某个目录下,其实不是。此情况易发于使用 IDE 的时候,因为 IDE 的执行目录并不一定是当前 py 文件所在目录。可以通过 print(os.getcwd()) 来查看当前路径。
Crossin先生
2019/12/18
1.6K0
使用PHP脚本来写Daemon程序
这又是一个有趣的概念,daemon在英语中是"精灵"的意思,就像我们经常在迪斯尼动画里见到的那些,有些会飞,有些不会,经常围着动画片的主人公转来转去,啰里啰唆地提一些忠告,时不时倒霉地撞在柱子上,有时候还会想出一些小小的花招,把主人公从敌人手中救出来,正因如此,daemon有时也被译作"守护神"。所以,daemon进程在国内也有两种译法,有些人译作"精灵进程",有些人译作"守护进程",这两种称呼的出现频率都很高。
大江小浪
2018/07/25
9560
安装 wordpress 出现 抱歉,我不能写入wp-config.php文件 下载 wordpress安装
本文告诉大家如何安装 wordpress ,在安装过程出现 抱歉,我不能写入wp-config.php文件如何解决
林德熙
2018/09/18
2.9K0
安装 wordpress 出现 抱歉,我不能写入wp-config.php文件
            下载 wordpress安装
proc文件系统
一、proc文件系统是什么? proc是一个伪文件系统,伪文件系统的定义: 它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的。 我们常常用它来追踪进程的状态、内核的状态、内存信息、CPU使用率、系统启动时间(可以使用系统正常运行时间)等相应的信息; 二、proc文件系统详
233333
2018/03/07
2.7K0
proc文件系统
Linux的proc文件系统
cat /proc/cpuinfo | grep’physical id’|uniq -c|wc –l
全栈程序员站长
2022/07/05
2.9K0
如何使用Node写入文件
2018年8月22日发布 在Node.js中写入文件的最简单方法是使用fs.writeFile()API。 示例:
ccf19881030
2020/11/26
2.5K0
头文件为什么不能定义变量
这是因为编译器需要经过预处理、编译、汇编、连接才可以生成可执行程序,在编译器执行链接这一步骤时,就会将工程中所有的符号整合在一起,由于文件中有重名变量,于是就出现了重复定义的错误。
用户9736681
2022/05/11
1.1K0
为什么在 RedHat Linux 5 下不能使用 ifconfig 命令
我安装完 RedHat Linux 5 之后,在终端使用一些命令,如: ifcinfig 查看本机的IP,发现不能使用此命令,提示说“command not found”,这该怎么办呢 想想肯定是环境变量没有加载,那就动手修改一下环境变量,修改如下:
知忆
2021/06/16
1.4K0
使用文件字节输出流FileOutputStream写入文件
1.代码 package d01_TestInput;/* * zt * 2020/8/7 * 11:11 * */ import java.io.FileOutputStream; public class TestFileOutputStream { public static void main(String[] args) throws Exception { //1.创建流 FileOutputStream fos = new FileOutp
2020/10/23
2.3K0
使用文件字节输出流FileOutputStream写入文件
文件的读取写入
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
bering
2019/12/03
2.7K0
使用CSV模块和Pandas在Python中读取和写入CSV文件
CSV文件是一种纯文本文件,其使用特定的结构来排列表格数据。CSV是一种紧凑,简单且通用的数据交换通用格式。许多在线服务允许其用户将网站中的表格数据导出到CSV文件中。CSV文件将在Excel中打开,几乎所有数据库都具有允许从CSV文件导入的工具。标准格式由行和列数据定义。此外,每行以换行符终止,以开始下一行。同样在行内,每列用逗号分隔。
用户7466307
2020/06/16
20.2K0
linux深入proc文件系统(上)
在Linux上,proc是一个伪文件系统,提供了访问内核数据的方法, 一般挂载在/proc目录,其中大部分是只读的。 下面是一些/proc重要的文件 pid目录 /proc/[pid]目录,pid为进程的数字ID,每个运行着的进程都有这么一个目录。 cmdline文件 /proc/[pid]/cmdline是一个只读文件,包含进程完整的命令行信息。如果这个进程是zombie进程,则这个文件没有任何内容。 > cat /proc/1751/cmdline java -jar rumenz.jar 这是一个J
入门笔记
2022/06/02
2.1K0
为什么我在 Linux 上使用 exa 而不是 ls?
我们生活在一个繁忙的世界里,当我们需要查找文件和数据时,使用 ls 命令可以节省时间和精力。但如果不经过大量调整,默认的 ls 输出并不十分舒心。当有一个 exa 替代方案时,为什么要花时间眯着眼睛看黑白文字呢?
用户1880875
2021/09/06
2K0
使用JAVA读取和写入EXCEL文件
下载地址http://download.csdn.net/detail/u010634066/8302683  下载直接用
石臻臻的杂货铺[同名公众号]
2021/07/14
1.8K0
晶振为什么不能放置在PCB边缘?
某行车记录仪,测试的时候要加一个外接适配器,在机器上电运行测试时发现超标,具体频点是84MHz、144MHz、168MHz,需要分析其辐射超标产生的原因,并给出相应的对策,辐射测试数据如下:
AI 电堂
2022/12/08
3740
晶振为什么不能放置在PCB边缘?
TiFS 能存数据,为什么不能存文件?
本篇文章的作者为龙姐姐说的都队的李晨曦,他们团队在本次 Hackathon 比赛中构建了一个基于 TiKV 的分布式 POSIX 文件系统 TiFS,继承了 TiKV 强大的分区容错和严格一致性特性,为 TiKV 生态开辟了一个新的领域。
PingCAP
2021/04/02
1.6K0
TiFS 能存数据,为什么不能存文件?
点击加载更多

相似问题

在使用Proc::Daemon::Init时创建pid_file

21

为什么我的程序在写入文件时崩溃?

20

带有mod_perl的Proc::Daemon不会写入STDOUT或STDERR

117

在Ubuntu 14.10上安装Proc::Daemon失败

10

Python:为什么我的程序不能从列表中写入文件?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文