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

AI读图片问题和多通道问题

numpy 和 opencv

image.io 是RGB格式 而opencv是BGR模式

# opencv转imageio
cv_img = v2.cvtColor(image_io_img , cv2.COLOR_RGB2BGR)
image_io_img = v2.cvtColor(cv_img , cv2.COLOR_BGR2RGB)

# opencv转PIL
pil_img = Image.fromarray(cv2.cvtColor(cv_img, cv2.COLOR_BGR2RGB))
#PIL.Image转opencv
cv_img = cv2.cvtColor(np.asarray(pil_img), cv2.COLOR_RGB2BGR)

imageio 修改

imageio的新版本出来了,
from scipy.misc import imread, imresize,这个面的scipy.misc 用不成了,使用imageio替代
新版本的imageio 读文件需要加上v2 或者v3 版本, 可以替代以前的imread

import imageio
im = imageio.v3.imread(path)  # read a standard image

读写视频文件

import imageio
reader = imageio.get_reader('imageio:cockatoo.mp4')
for i, im in enumerate(reader):
    print('Mean of frame %i is %1.1f' % (i, im.mean()))
#写入灰度图
imageio.imwrite('gray.jpg', im[:, :, 0])

多通道问题

无论是jpg还是png图片一般来说至少三个通道,但是有的是四通道,要一致还是要写的代码的
需要判断一下是三通道的图片还是四通道的图片,下面是一段转到torch 张量的开始到结束

#img = imread(image_path)钱波修改
    img = imageio.v3.imread(image_path)
    if len(img.shape) == 2:
        img = img[:, :, np.newaxis]
        img = np.concatenate([img, img, img], axis=2)
    if img.shape[2] == 4:
        img = Image.open(image_path).convert('RGB')
        img = np.array(img.resize((256,256)))    
        #img = img[:3]
    else:
        #img = imresize(img, (256, 256))
        img = np.array(Image.fromarray(img).resize((256,256)))
    img = img.transpose(2, 0, 1)
    img = img / 255.
    img = torch.FloatTensor(img).to(device)
    normalize = transforms.Normalize(mean=[0.485, 0.456, 0.406],
                                     std=[0.229, 0.224, 0.225])
    transform = transforms.Compose([normalize])
    image = transform(img)  # (3, 256, 256)

    # Encode
    image = image.unsqueeze(0)  # (1, 3, 25)

http://www.kler.cn/a/37918.html

相关文章:

  • 大数据篇Kafka消息队列指定Topic打印Key、Value、Offset和Partition
  • C++程序生成文件
  • jetson nano报错Cannot allocate memory的问题——解决办法
  • UI schema入门demo:应对业务需求变化的强力武器
  • python调用oepnai API
  • 简单的微信小程序拼图游戏的代码
  • COT、COT-SC、TOT 大预言模型思考方式||底层逻辑:prompt设定
  • flutter开发实战-flutter二维码条形码扫一扫功能实现
  • 使用chatgpt过funcaptcha验证码3个人学习记录
  • javaee jsp页面 九大内置对象和四大作用域
  • Abandoning the Bayer-Filter to See in the Dark 论文阅读笔记
  • C++并发编程(6):单例模式、once_flag与call_once、call_once实现单例
  • 微信小程序(二)
  • Element 表单验证项v-model绑定值为对象下嵌套的子对象的属性时无法验证
  • FLutter 开发中 fijkplayer设置屏幕常亮
  • Android 内存泄漏的常见原因及其对应的解决方案
  • 提示“无法向会话状态服务器发出会话状态请求。请确保 ASP.NET State Service (ASP.NET 状态服务)已启动”,如何解决?
  • 算法学习day24
  • 实验四(双向重发布)7 14
  • Java线程状态