R报错无法启动tiff()装置 找不到原因

R语言输出tiff()文件时

报错

Error in tiff("BC_edge_d.tiff", height = 55, width = 55, units = "in",  : 
  无法启动tiff()装置
In addition: Warning messages:
1: In tiff("BC_edge_d.tiff", height = 55, width = 55, units = "in",  :
  无法分配bitmap
2: In tiff("BC_edge_d.tiff", height = 55, width = 55, units = "in",  :
  opening device failed

但是还没找到解决办法,只能改变输出格式

png("BC_edge_d.png",height=2500,width=2500,units="px",bg="white")

能够顺利输出图片

大家如果知道怎么解决这个报错,可以一起讨论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MATLAB中的imwrite函数也可以用于将图像写入文件。与OpenCV的IMWRITE函数类似,imwrite函数支持多种图像格式,包括TIFF格式。在MATLAB中,如果您尝试使用imwrite函数将20位图像写入TIFF文件,也会收到与OpenCV中IMWRITE函数类似的误消息:IMWRITE does not support writing TIFF files with 20 samples per pixel. 要解决此问题,您可以考虑使用其他图像格式,例如PNG、JPEG或BMP等。如果您必须使用TIFF格式,则可以将20位图像拆分为两个16位图像,并将它们保存为多页TIFF文件。这可以通过以下步骤完成: 1. 将20位图像划分为两个16位图像。您可以使用MATLAB的bitand和bitshift函数执行此操作。 2. 将两个16位图像保存为多页TIFF文件。您可以使用MATLAB的imwrite函数,并通过指定“WriteMode”参数为“append”将两个图像添加到同一文件中。 以下是示例代码,用于将一个20位图像保存为多页TIFF文件: ```matlab % 读取20位图像 img = imread('20bit.tif'); % 划分为两个16位图像 img1 = bitand(img, 65535); % 保留低16位 img2 = bitshift(img, -16); % 右移16位,保留高4位 % 将两个16位图像保存为多页TIFF文件 imwrite(img1, '20bit.tif', 'WriteMode', 'overwrite'); imwrite(img2, '20bit.tif', 'WriteMode', 'append'); ``` 这将生成一个名为“20bit.tif”的多页TIFF文件,其中第一页是低16位图像,第二页是高4位图像。您可以使用MATLAB的imread函数读取多页TIFF文件,并使用bitand和bitor函数将两个16位图像合并为一个20位图像。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值