簡體   English   中英

無需循環即可獲取圖像的幀/​​圖案MATLAB

[英]Get frame / pattern of an image without loop MATLAB

我想提取圖像的某些部分。 假設只有在某種模板或框架中被索引的那些部分。

GRAYPIC = reshape(randperm(169), 13, 13);
FRAME = ones(13);
FRAME(5:9, 5:9) = 0;
FRAME_OF_GRAYPIC = []; % the new pic that only shows the frame extracted

我可以使用for循環來實現:

for X = 1:13
for Y = 1:13
    vlaue = FRAME(Y, X);
    switch vlaue

        case 1
            FRAME_OF_GRAYPIC(X,Y) = GRAYPIC(X,Y)
        case 0
            FRAME_OF_GRAYPIC(X,Y) = 0
    end
end
end
imshow(mat2gray(FRAME_OF_GRAYPIC));

但是,可以將其與某種矢量操作一起使用,即:

FRAME_OF_GRAYPIC = GRAYPIC(FRAME==1);

不過,不幸的是,這行不通。

有什么建議么?

非常感謝您的回答,最好,克萊門斯

評論太久了...

GRAYPIC = reshape(randperm(169), 13, 13);
FRAME = zeros(13);        
FRAME(5:9, 5:9) = 0;      
FRAME_OF_GRAYPIC = zeros(size(GRAYPIC); % MUST preallocate new pic the right size
FRAME = logical(FRAME);   % ... FRAME = (FRAME == 1)
FRAME_OF_GRAYPIC(FRAME) = GRAYPIC(FRAME);

這里要注意的三件事:

  • FRAME必須是邏輯數組。 使用true() / false()創建它,或者使用logical() FRAME = (FRAME == true_value);它,或者使用FRAME = (FRAME == true_value);選擇一個值為true的值FRAME = (FRAME == true_value);
  • 您必須將最終圖像預分配為適當的尺寸,否則它將變成矢量。
  • 您需要在作業的兩側使用圖像索引:
    FRAME_OF_GRAYPIC(FRAME) = GRAYPIC(FRAME);

輸出:

FRAME_OF_GRAYPIC =
    38    64   107    63    27   132   148   160    88    59   102    69    81
    14   108    76    58    49    55    51    19   158    52   100   153    39
    79   139    12   115   147   154    96   112    82    73   159   146    93
   169     2    71    25    33   149   138   150   129   117    65    97    17
    43   111    37   142     0     0     0     0     0   128    84    86    22
     9   137   127    45     0     0     0     0     0    68    28    46   163
    42    11    31    29     0     0     0     0     0   152     3    85    36
    50   110   165    18     0     0     0     0     0   144   143    44   109
   114   133     1   122     0     0     0     0     0    80   167   157   145
    24   116    60   130    53    77   156    35     6    78    90    30   140
    74   120    40    26   106   166   121    34    98    57    56    13    48
     8   155     4    16   124    75   123    23   105    66     7   141    70
    89   113    99   101    54    20    94    72    83   168    61     5    10

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM