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
  • 相关阅读:
    python 中多个装饰器的执行顺序:
    Python基础思维导图
    怎样写出靠谱的RESUTful API接口?
    python中yield()的用法详解
    Flask思维导图
    Django的设计模式
    MySQL
    MySQL
    Linux
    zsh oh-my-zsh 插件推荐
  • 原文地址:https://www.cnblogs.com/liumeng-blog/p/8023739.html
Copyright © 2011-2022 走看看