首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

16位深度图像转8位灰度

  • 23-09-26 04:21
  • 3392
  • 8558
blog.csdn.net

第一种: 将16位转换位8位的时候还保留住原来的像素值,这种只改变位数而不改变具体数值,但是超过255大小的像素会转为255,故会造成信息丢失,不推荐该方法;

  1. #include
  2. #include
  3. #include
  4. #include
  5. using namespace std;
  6. using namespace cv;
  7. int main(void) {
  8. char buff1[100];
  9. char buff2[100];
  10. Mat src;
  11. //Mat dst;
  12. src = imread("C:\Users\Administrator\Desktop\unet_2\traindata\case01010046_Orignal_19.png", CV_LOAD_IMAGE_UNCHANGED);
  13. Mat ff = Mat::zeros(src.rows, src.cols, CV_8UC1);
  14. for (int k = 0; k
  15. for (int kk = 0; kk
  16. int n = src.at(k, kk);
  17. ff.at(k, kk) = n;
  18. }
  19. }
  20. //src.copyTo(dst);
  21. imshow("haha",ff);
  22. //waitKey(0);
  23. //imwrite("c", ff);
  24. waitKey(0);
  25. return 0;
  26. }

第二种,先把16位的图像归一化,然后*255转成8位,这一种类最为常用,而且可视化效果好,推荐该方法;

一张16位图片保存为8位如下,(切记如果用opencv读取16位,flag字段为cv2.IMREAD_ANYDEPTH)

  1. # -*- coding:utf8 -*-
  2. import os
  3. import re
  4. import shutil
  5. import cv2
  6. import numpy as np
  7. from PIL import Image
  8. def norm_img(img):
  9. max_v = img.max()
  10. min_v = img.min()
  11. img = (img - min_v) / (max_v - min_v)
  12. return img*255
  13. file1=r".1false_8"
  14. if not os.path.exists(file1):
  15. os.makedirs(file1)
  16. path1=r".1false_16"
  17. list_path=os.listdir(path1)
  18. for i in range(len(list_path)):
  19. dicom_paths=os.path.join(path1,list_path[i])
  20. img_copy=cv2.imread(dicom_paths,cv2.IMREAD_ANYDEPTH)
  21. img_copy=norm_img(img_copy)
  22. prefix=str(i).zfill(5)+'.png'
  23. cv2.imwrite(os.path.join(file1,prefix),img_copy)

 

可以显示

如果想保存16位的png图,最好用PIL库保存,不要用opencv!

参考链接:http://iyenn.com/rec/367155.html

另外通常使用opencv读取16位并保存16位的图像有几点需要注意!

opencv使用imread读取16位图像时需要增加参数:cv2.IMREAD_UNCHANGED

这样才是读取原数据,其通道数才不会改变

image1=cv2.imread(os.path.join(img,imgs[i]),cv2.IMREAD_UNCHANGED)

opencv保存16位图像时候必须转化为该数据类型并保存为PNG等格式才行:

具体参考:http://iyenn.com/index/link?url=http://www.sohu.com/a/318613851_823210

 

注:本文转载自blog.csdn.net的CVer儿的文章"https://blog.csdn.net/qq_35054151/article/details/99583654"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top