1

我在 MATLAB 中读取 8 位两次抽头交错的 RGB 原始文件时遇到问题

我在网上关注了几个答案,但我找不到我的确切形式。

有没有人可以帮助解决这个问题?

下列的

如何在 MATLAB 中读取 RAW 图像?

我写了如下几行。

imraw = fread(fin, row*col*3, '*uint8');
imraw = reshape(imraw,[col,row,3]);
imfinal = flip(imrotate(imraw, -90),2); % // The clever transpose
fclose(fin);
imshow(imfinal,[])

但是,我觉得有些不对劲。使用上面的代码,结果是这样的 以上行的结果示例

此图像是真实图像一部分的放大图像(我猜大约是真实图像的 1/8)。

T 认为第 2-3 行有问题(重塑、翻转)。

我的原始文件可以在这里下载

https://drive.google.com/drive/folders/1AWMpX3Rfm193M0xMkLJOZI0tPxjpsHsV?usp=sharing

jpg 中的示例图像是,

jpg 中的示例

谢谢!!


我解决了这个问题!我认为,“两次抽头交错”并不重要。

我如何解决这个问题

  1. 我调查了原始文件的整个大小,发现它是 2048 X 2048 X 4。
  2. 零出现在每 4 个位置。(例如,10、200、100、0、50、5、70、0 ...)
  3. 我想我的图像结构是 2048 2048(3 RGB +1 垃圾)
  4. 所以我从每个第一个位置得到数字并得到一个图像

在此处输入图像描述

所以现在,我认为我唯一需要做的就是翻转。哈哈,我希望这篇文章能帮助其他有同样问题的人。

4

0 回答 0