当前位置: 首页 > news >正文

哈密市网站建设_网站建设公司_内容更新_seo优化

网站开发主流程序,wordpress 插件翻译,沈阳网站建设技术支持,山东泰安个人博客:Sekyoro的博客小屋 个人网站:Proanimer的个人网站 最近在用opencv和matplotlib展示图片,但是遇到了一些问题,这里展开说说 首先需要明确的是,opencv和matplotlib读取图片都是通道在最后,而前者默认可见光图像是BGR,后者是RGB.此外还有PIL以及imageio等读取图像的工具…个人博客:Sekyoro的博客小屋 个人网站:Proanimer的个人网站 最近在用opencv和matplotlib展示图片,但是遇到了一些问题,这里展开说说 首先需要明确的是,opencv和matplotlib读取图片都是通道在最后,而前者默认可见光图像是BGR,后者是RGB.此外还有PIL以及imageio等读取图像的工具,这里不一一赘述. Opencv 对于opencv,使用cv2.imshow,cv2.imread以及cv2.imwrite来读写以及显示. imshow 显示图像的缩放取决于图像深度 对 8 位无符号图像按原样显示 对 16 位无符号或 32 位整数图像将像素值范围 [0,255*255] 映射到 [0,255] 显示 对 32 位浮点图像将像素值范围 [0,1] 映射到 [0,255] 显示 当cv2.imshow()处理图像深度为CV_8U默认范围为[0,255]时按原数据显示 当处理图像深度为CV_16U默认范围为[0,65535]时除以256,映射到[0,255] 当图像深度为CV_32F和CV_64F时默认范围为[0,1]乘以255映射到[0,255],超过255直接饱和 当输入负数时当作0来处理 import numpy as np import cv2img np.zeros((500, 500, 1)) print(img.dtype) img[150:170, 150:350] 10 img[250:270, 150:350] -1 img[350:370, 150:350] -10 print(img[350:170, 150:350]) cv2.imshow(img, img) cv2.waitKey()由于numpy默认类型float64,浮点数会乘以255,所以只有最上面有一条白线.负值直接黑色 import numpy as np import cv2 # 新建numpy数组注意np.zero()创建的数据类型为float64 img np.zeros((500, 500, 1)) print(img.dtype) img[150:170, 150:350] 10 img[250:270, 150:350] 255 img[350:370, 150:350] 1 print(img[350:170, 150:350]) cv2.imshow(img, img) cv2.waitKey()而如果是大于1的浮点数,也是直接饱和. 如果是uint8,如果超出255,则会被numpy截取,也就是取模 img np.zeros((500, 500, 1),dtypenp.uint8) print(img.dtype) img[150:170, 150:350] 10 img[250:270, 150:350] 20 img[350:370, 150:350] 30 cv2.imshow(img, img) print(img[350:370, 150:350]) cv2.waitKey()img np.zeros((500, 500, 1),dtypenp.uint8) print(img.dtype) img[150:170, 150:350] 10 img[250:270, 150:350] 512 img[350:370, 150:350] 255 cv2.imshow(img, img) print(img[250:270, 150:350]) cv2.waitKey()打印img[250:270, 150:350]的值发现是0 img np.zeros((500, 500, 1)) print(img.dtype) img[150:170, 150:350] 10 img[250:270, 150:350] 512 img[350:370, 150:350] 255 cv2.imshow(img, img) print(img[250:270, 150:350]) cv2.waitKey()所以这涉及两个问题,一个是本身numpy的截取另一个是opencv的截取机制. img np.zeros((500, 500, 1), dtypenp.uint16) print(img.dtype) img[150:170, 150:350] 2 img[250:270, 150:350] 255*255 img[350:370, 150:350] 255*100 cv2.imshow(img, img) cv2.waitKey(0) print(img[250:270, 150:350]) cv2.imwrite(test.png, img)如果是16位无符号整数,会除以255. 最后注意,如果是int32可能会报错 imwrite 机制与imshow类似,不过会根据保存文件的后缀进行编码参数. cv2.imwrite() 能保存 BGR 3通道图像或 8 位单通道图像、或 PNG/JPEG/TIFF 16位无符号单通道图像 注意:如果保存float32的图像值超过了1,此时会与imshow机制不同,表现为值被归到0-255 a np.ones([255,255,1],dtypenp.float32) a[0:255,0:255] 10 print(a) cv2.imshow(img,a) cv2.waitKey() cv2.imwrite(test.png,a)上面有两张图,分别是imwrite的图片与imshow的图片,由于是浮点数,imshow展示时乘了255导致饱和白色.所以会说imwrite对浮点数不友好,不符合imshow的道理, imread 注意如果有通道则通道在最后,可以设置 IMREAD_UNCHANGED -1, //如果设置则返回的数据带有alpha通道R,G,B,A 四个通道否则没有alpha通道 IMREAD_GRAYSCALE 0, //如果设置则将图像转换为单通道灰度图像 IMREAD_COLOR 1, //如果设置则将图像转换成3通道BGR彩色图像 IMREAD_ANYDEPTH 2, //如果设置则在输入具有相应深度时返回16位/32位图像否则将其转换为8位 IMREAD_ANYCOLOR 4, //如果设置则图像可能以任何颜色格式读取 IMREAD_LOAD_GDAL 8, //如果设置使用gdal驱动程序加载图像 IMREAD_REDUCED_GRAYSCALE_2 16, //如果设置总是将图像转换为单通道灰度图像且图像大小减少1/2 IMREAD_REDUCED_COLOR_2 17, //如果设置总是将图像转换为3通道BGR彩色图像且图像大小减少1/2 IMREAD_REDUCED_GRAYSCALE_4 32, //如果设置总是将图像转换为单通道灰度图像且图像大小减少1/4 IMREAD_REDUCED_COLOR_4 33, //如果设置总是将图像转换为3通道BGR彩色图像且图像大小减少1/4 IMREAD_REDUCED_GRAYSCALE_8 64, //如果设置总是将图像转换为单通道灰度图像且图像大小减少1/8 IMREAD_REDUCED_COLOR_8 65, //如果设置总是将图像转换为3通道BGR彩色图像且图像大小减少1/8 IMREAD_IGNORE_ORIENTATION 128 //如果设置不会根据EXIF的方向标志旋转图像 Matplotlib imshow 主要讲讲matplotlib的imshow matplotlib在imshow时如果接收到的是二维矩阵会自动归一化映射到彩色。如果输入的矩阵里面值都是一样的归一化会把他们全部变为255也就是呈现黑色。 用于在使用 cmap 映射到颜色之前将标量数据缩放到 [0, 1] 范围的归一化方法。默认情况下使用线性缩放将最低值映射到 0将最高值映射到 1。 imshow的输入 图像数据。支持的数组形状有(M,N)具有标量数据的图像。使用归一化和颜色图将值映射到颜色。请参阅参数norm、cmap、vmin、vmax。 (M, N, 3)具有 RGB 值0-1 float 或 0-255 int的图像。 (M, N, 4)具有 RGBA 值0-1 float 或 0-255 int的图像即包括透明度。前两个维度M、N定义图像的行和列。超出范围的 RGB(A) 值将被剪裁。 所以如果使用单通道的数据,会默认norm,而这种norm是根据输入值的min-max进行norm,并不是norm到0-255 img torch.ones(152,152,1,dtypetorch.uint8)*220 img img.numpy() plt.imshow(img,cmapgray) plt.show()解决办法是设置vmin0,vmax255,当然使用三通道也可以 相关问题 matplotlib 可视化图像明明255结果出来全为黑色的问题_plt.imshow 不加vmin和vmax参数是全黑的_佳hong的博客-CSDN博客有关函数cv2.imshow()处理不同图像深度时的数据转化问题_cv2.cv_8u图像深度-CSDN博客这篇文章有点问题,目前opencv将负值作为0处理opencv中imwrite对float的处理 - siren27 - 博客园 (cnblogs.com)【精选】使用 tiff/png 文件类型对 uint16_t/float 数据类型存取的无聊实验_float存储方式和uint16-CSDN博客 如有疑问,欢迎各位交流! 服务器配置 宝塔:宝塔服务器面板一键全能部署及管理 云服务器:阿里云服务器 Vultr服务器 GPU服务器:Vast.ai
http://www.ihoyoo.com/news/73700.html

相关文章:

  • 网站程序开发的基本步骤不花钱的传奇手游排行榜
  • 做任务赚q币的网站网站被别人域名绑定
  • 网站开发 简单wordpress homepage
  • 古典网站源码房天下房官网
  • wordpress零基础建站沙市做网站weisword
  • 网站建设制作方式有哪些下载贵州省建设厅网站
  • 招聘网站有哪些平台wordpress页面功能
  • 阿里云 发布网站 教程找人做网站被骗
  • 手机网站服务器做网站买个域名多少钱
  • 一个优秀的网站wordpress 谷歌字体解决
  • 2017优秀网站设计案例对电子政务做技术支持的网站
  • 扬中零壹网站建设58同城建筑招聘网最新招聘
  • 替别人做网站管理员西安网站开发公司怎么选
  • 怎么创建网站快捷方式到桌面可以先做网站后备案吗
  • wordpress 建站公司发稿平台渠道
  • 物流网站怎么做推广未来做那些网站能致富
  • 江苏短视频seo搜索中卫网站推广优化
  • 网站建设费属于服务类么做网站算 自由职业者
  • 中国最大的家装网站网站建设规划图
  • 山东聊城建设局网站北京网站代运营公司
  • 高端网站设计电话国际新闻最新消息
  • 挂网站需要什么服务器wordpress 同步文章
  • 网站建设如何站内搜索cms系统使用教程
  • html5自建网站网站开发框架怎么写
  • 有那种网站的浏览器佛山主题网站设计多少钱
  • 石家庄专门做网站的公司合肥室内设计公司有哪些
  • t云建站名人堂网站建设
  • 江苏网站建设官网申请域名后 怎么把网站部署上去
  • 北京网站建设推广成都建设招标网站首页
  • 广州网络建站网站开始开发阶段的主要流程