imread---matlab和openCVf返回值的区别

matlab

img = imread('.//img01.jpg');
disp(img);

结果

disp(img(:,:,1))
  Columns 1 through 30
  189   59    1    0   52   51   40   32    0    4  115  202  215  205  206  207  222  211  197    0   31  165  162  163  165  165  166  166  161  169
  192   95    1    0   53   49   43   41    0    3   99  203  221  205  207  208  221  214  199    4   37  156  164  164  164  166  166  165  165  167
  197  123    1    1   55   52   48   44    0    0   79  202  225  209  207  208  220  211  200   26   29  156  163  164  165  164  165  167  165  168
  196  141    0    1   59   55   51   44    0    0   66  203  226  214  208  208  220  215  206   49    8  159  164  164  166  166  167  167  168  170
  198  156    0    0   60   58   52   45    0    0   35  198  229  215  209  209  218  213  207   75    0  149  165  163  165  171  167  167  167  167
  196  159    0    0   59   60   53   45    1    0    3  196  227  217  209  210  218  211  221   94    1  140  165  166  167  175  170  169  171  171
... ...
disp(img(:,:,2))
  Columns 1 through 30
  192   63    4    4   55   53   45   35    2    6  114  202  216  206  208  209  222  212  198    2   36  169  167  168  170  170  170  170  167  175
  195   99    4    3   55   51   48   44    2    5  100  205  222  206  209  210  221  215  200    6   39  160  168  169  169  171  170  169  171  173
  202  127    4    3   57   54   50   47    2    0   80  204  226  212  209  210  223  214  201   28   31  158  167  168  169  168  171  173  169  172
  204  148    5    3   61   57   53   47    2    1   69  205  230  217  210  210  223  218  207   50   10  161  168  168  170  170  171  171  172  174
  205  162    5    5   62   58   54   48    2    0   37  201  230  216  211  211  220  216  208   76    2  153  169  167  169  175  171  171  171  173
  203  166    5    5   61   60   54   47    1    1    3  197  228  218  211  212  220  214  222   95    3  144  169  170  171  179  171  173  175  177
... ...
disp(img(:,:,3))

  Columns 1 through 30
  175   48    0    0   48   48   41   42   27   47  171  254  247  224  223  221  230  216  200    1   32  168  171  172  174  173  173  171  167  175
  178   84    0    0   50   46   44   51   27   44  156  255  252  224  224  222  229  219  202    5   38  159  171  173  172  174  173  170  169  173
  182  112    0    0   52   49   47   52   25   38  134  253  255  229  224  222  232  219  205   27   30  157  168  171  170  169  171  171  168  173
  183  132    0    0   56   52   50   54   25   40  124  255  255  234  225  223  232  225  211   52    9  160  169  169  171  171  170  170  171  175
  ... ...

openCV

Mat img = imread('.//img01.jpg');
for(int k=0; k<12; k++)
    for(int l=0; l<12; l++)
        std::cout << img.at<Vec3b>(k, l);

结果
这里写图片描述

单独打印最后一通道

for(int k=0; k<12; k++)
        for(int l=0; l<12; l++)
            std::cout << (int)img.at<Vec3b>(k, l)[2] << " ";

结果
这里写图片描述

总结

两者的通道正好是相反的
matlab是先打印一个通道再打印一个通道,opencv是3个通道同时打印

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值