Octave imwrite 从三维矩阵写入空白图像

问题描述 投票:0回答:0

我还在学习octave,需要用到imwrite函数

我的程序基本上只需要读取图像,然后创建一个较小的矩阵来缩小原始图像(我不是试图插值,只是在特定的行和列处获取点)。

这里是我的输入和输出矩阵的一些例子

Original
ans(:,:,1) =

  184  175  184  194  194  194  194  194  184  194  194  194  194  194  184  150
  184  184  175  175  150  159  175  184  184  184  175  175  184  184  159  159
  175  184  184  184  175  184  175  159  159  159  159  175  175  184  184  150
  150  126  126  150  150  126  103  103  126  126  103  126  103  103  126  103
  184  194  159  194  194  194  194  159  194  194  194  184  175  175  159  184
  175  184  184  175  159  175  159  150  159  175  175  184  184  184  184  175
  159  159  175  184  175  175  175  150  184  184  184  175  175  159  159  159
  103  103  126  126  150  126  103  103  103  103  126  126  126  150  126  103
  184  194  194  184  175  175  194  194  194  194  194  194  194  194  184  159
  184  175  184  184  184  184  175  159  159  159  175  159  175  159  159  150
  194  184  175  175  159  159  159  159  175  175  175  175  159  159  184  159
  103  103  126  150  150  126  103  103  103  126  150  126  126  103  103  103
  194  159  184  194  194  184  184  159  194  194  194  159  194  184  194  194
  175  175  184  184  159  159  175  159  159  184  184  175  184  175  175  175
  175  159  159  175  184  175  159  150  184  184  175  159  159  159  159  159
  103  126  126  103  103  126  150  150  150  126  103  126  103  103  103  103

ans(:,:,2) =

  148  143  148  157  157  157  157  157  148  157  157  157  157  157  148  116
  148  148  143  143  116  132  143  148  148  148  143  143  148  148  132  132
  143  148  148  148  143  148  143  132  132  132  132  143  143  148  148  116
  116   98   98  116  116   98   80   80   98   98   80   98   80   80   98   80
  148  157  132  157  157  157  157  132  157  157  157  148  143  143  132  148
  143  148  148  143  132  143  132  116  132  143  143  148  148  148  148  143
  132  132  143  148  143  143  143  116  148  148  148  143  143  132  132  132
   80   80   98   98  116   98   80   80   80   80   98   98   98  116   98   80
  148  157  157  148  143  143  157  157  157  157  157  157  157  157  148  132
  148  143  148  148  148  148  143  132  132  132  143  132  143  132  132  116
  157  148  143  143  132  132  132  132  143  143  143  143  132  132  148  132
   80   80   98  116  116   98   80   80   80   98  116   98   98   80   80   80
  157  132  148  157  157  148  148  132  157  157  157  132  157  148  157  157
  143  143  148  148  132  132  143  132  132  148  148  143  148  143  143  143
  143  132  132  143  148  143  132  116  148  148  143  132  132  132  132  132
   80   98   98   80   80   98  116  116  116   98   80   98   80   80   80   80

ans(:,:,3) =

   95   85   95   98   98   98   98   98   95   98   98   98   98   98   95   65
   95   95   85   85   65   77   85   95   95   95   85   85   95   95   77   77
   85   95   95   95   85   95   85   77   77   77   77   85   85   95   95   65
   65   55   55   65   65   55   44   44   55   55   44   55   44   44   55   44
   95   98   77   98   98   98   98   77   98   98   98   95   85   85   77   95
   85   95   95   85   77   85   77   65   77   85   85   95   95   95   95   85
   77   77   85   95   85   85   85   65   95   95   95   85   85   77   77   77
   44   44   55   55   65   55   44   44   44   44   55   55   55   65   55   44
   95   98   98   95   85   85   98   98   98   98   98   98   98   98   95   77
   95   85   95   95   95   95   85   77   77   77   85   77   85   77   77   65
   98   95   85   85   77   77   77   77   85   85   85   85   77   77   95   77
   44   44   55   65   65   55   44   44   44   55   65   55   55   44   44   44
   98   77   95   98   98   95   95   77   98   98   98   77   98   95   98   98
   85   85   95   95   77   77   85   77   77   95   95   85   95   85   85   85
   85   77   77   85   95   85   77   65   95   95   85   77   77   77   77   77
   44   55   55   44   44   55   65   65   65   55   44   55   44   44   44   44

Compressed
ans(:,:,1) =

   184   175   159   184   184   175   184   159
   126   150   126   103   126   126   103   103
   184   175   175   150   175   184   184   175
   103   126   126   103   103   126   150   103
   175   184   184   159   159   159   159   150
   103   150   126   103   126   126   103   103
   175   184   159   159   184   175   175   175
   126   103   126   150   126   126   103   103

ans(:,:,2) =

   148   143   132   148   148   143   148   132
    98   116    98    80    98    98    80    80
   148   143   143   116   143   148   148   143
    80    98    98    80    80    98   116    80
   143   148   148   132   132   132   132   116
    80   116    98    80    98    98    80    80
   143   148   132   132   148   143   143   143
    98    80    98   116    98    98    80    80

ans(:,:,3) =

   95   85   77   95   95   85   95   77
   55   65   55   44   55   55   44   44
   95   85   85   65   85   95   95   85
   44   55   55   44   44   55   65   44
   85   95   95   77   77   77   77   65
   44   65   55   44   55   55   44   44
   85   95   77   77   95   85   85   85
   55   44   55   65   55   55   44   44

我将这个“压缩”矩阵保存到一个变量中并调用 imwrite:

orig = imread('orig.png')
comp = compress(orig, 1);
imwrite(comp, 'comp.png');

然后... imwrite 生成一个空白图像。有谁知道我做错了什么?

当我输入原始矩阵时,我可以正常工作。但是当我尝试输入补偿矩阵时我不起作用

image octave
© www.soinside.com 2019 - 2024. All rights reserved.