zoukankan      html  css  js  c++  java
  • opencv imwrite保存图片花屏的问题

    • 问题:在项目中用opencv的imwrite保存图片出现花屏的问题,如下图:

    • 思路:
      1.  因为项目中的图像数据(float类型,0-255)是在GPU中,保存的话:可以用CPU保存图片,也可以用GPU保存图片。GPU保存图片没有花屏的现象,因此,初步怀疑,是因为数据从GPU拷贝到CPU的时候丢了。
          后来测试,发现拷贝到CPU的数据,再拷回GPU保存依然没有问题。
      2. 后来发现,将需要保存的图片格式改为CV_32F3C后,保存不存在问题。而之前CV_8U3C的就会出现花屏,赋值的话就是简单的将float的值赋给像素点。

    • 解决方法:
      1. 利用opencv的convertTo函数,对Mat的格式进行转换:
       
       2. 若想直接赋值:观察之前的花屏的图像,是白色和黑色的附近出现花屏。因此,很有可能与0和255附近的溢出有关:
          
          这个地方我也不太明白:自己写的clip_value也是处理0-255之前的越界问题,不行,出现花屏。改为opencv自带的saturate_cast便可以了,但网上说saturate_cast的原理就是小于0的赋值0,大于255的赋值255.
          在网上看见有一个人和我遇到相似的情况,mark一下:http://blog.csdn.net/mjlsuccess/article/details/12401839
  • 相关阅读:
    ML与NLP的2019年度总结与展望
    python在文本开头插入一行的实例
    Git Notes
    warmup 预热学习率
    python error整理
    python 中字符串处理
    集成学习voting Classifier在sklearn中的实现
    机器学习 评价指标整理
    PaddlePaddle Notes
    linux 常用指令 文件操作trick等
  • 原文地址:https://www.cnblogs.com/liumeng-blog/p/8023739.html
Copyright © 2011-2022 走看看