为什么将图片读取未一个数组后是一个三维的数组呢?

今天使用scikit-image读取图片后,发现图片是一个三维数组,按理解图片不该是一个二维数组么?为什么是一个三维数组呢?

0

4个回答

是三维没错,长,宽,通道
通道:R(红)G(绿)B(蓝)
或A(Alpha)R(红)G(绿)B(蓝)
Alpha:透明度

0

彩色图像有RGB三个通道,表示图像颜色

0

是三维的,正常来说(H,W,C)
如果考虑batch-size的话,会到四维——(N,H,W,C)

0

例如:比如你使用skimage.io.imread函数,关于返回的是几维数据,你可以根据函数说明来,首先给出函数定义,源码,https://github.com/scikit-image/scikit-image/blob/master/skimage/io/_io.py#L14

函数定义:

def imread(fname, as_gray=False, plugin=None, flatten=None,
           **plugin_args):
    """Load an image from file.
    Parameters
    ----------
    fname : string
        Image file name, e.g. ``test.jpg`` or URL.
    as_gray : bool, optional
        If True, convert color images to gray-scale (64-bit floats).
        Images that are already in gray-scale format are not converted.
    plugin : str, optional
        Name of plugin to use.  By default, the different plugins are
        tried (starting with imageio) until a suitable
        candidate is found.  If not given and fname is a tiff file, the
        tifffile plugin will be used.
    Other Parameters
    ----------------
    plugin_args : keywords
        Passed to the given plugin.
    flatten : bool
        Backward compatible keyword, superseded by `as_gray`.
    Returns
    -------
    img_array : ndarray
        The different color bands/channels are stored in the
        third dimension, such that a gray-image is MxN, an
        RGB-image MxNx3 and an RGBA-image MxNx4.

这里关于返回值明确写了:
img_array : ndarray
The different color bands/channels are stored in the
third dimension, such that a gray-image is MxN, an
RGB-image MxNx3 and an RGBA-image MxNx4.

所以说,还是需要结合具体的函数来,而不是想当然。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
一个数组,为什么会卡呢?
[code=JScript]rnvar info="2000|1999|1998|1997|1996|1995|...............3|2|1" //一共2000个rnrnvar a=new Array();rnvar a=info.split("|")rna.pop()rnrnfor(i=1;i
将图片存入数组
谁知道怎么将图片存入数组?
将图片文件读取到数组
请问如何将图片文件读取到数组?我读出来的中间总是有0x00,然后我做base64的时候,总是认为到0x00就结束了,我想应该是我读取的方式不对
为什么说"数组是隐式的引用类型"呢?
(1)还有什么类型也是隐式的引用类型呢?rn(2)那什么类型才能叫做"显示"的引用类型呢?rn谢谢。
将一个数组逆序输出
解题思路:将数组逆序输出,可以从后往前遍历,依次输出代码:public class Main2 {    public static void main(String[] args) {        // TODO Auto-generated method stub        int[] a=new int[]{1,2,3,4,5,6,7,8,9};        System.out.p...
将图片转成C数组
将图片转成C数组 图片有RGB三种分量,需要将三种分量共同提取出来,使用opencv和vs2017 首先读取图片,因为该图像为黑白图片,RGB分量相等,故只读写一种通道 #include<opencv2\opencv.hpp>  #include <ctype.h>  #include "iostream"  using namespace std; usin...
asp.net 读取序列化后的数组
asp.net 读取序列化后的数组! 很值得下载看看!资源免费,大家分享!!
C# 读取序列化后的数组
C# 读取序列化后的数组C# 读取序列化后的数组C# 读取序列化后的数组C# 读取序列化后的数组C# 读取序列化后的数组
将一个数组添加到另一个数组的尾部
本文主要介绍,如何将一个数组添加到另一个数组的尾部 代码如下 // es5 方法 var arr1 = [0, 1, 2]; var arr2 = [3, 4, 5]; Array.prototype.push.apply(arr1, arr2); console.log(arr1); // [0, 1, 2, 3, 4, 5]; //...
C# 将一个数组分成若干数组
如string data="aaaa bbbbbb cccc";rn我想将它变成三个数组"aaaa","bbbbbb","cccc",存入list中,rn求高手帮忙
为什么不可以这样声明一个数组呢?
为什么不可以这样声明一个数组呢?rnSystem.Array kkk=new System.Array();
处理排序数组为什么会快于未排序的数组
在逛Stack Overflow时,看到一个很有意思的问题,以前一直是知道该这么做,但是却没有理解这么做的原因,问题 看这里。 下面是一段很简单的C++代码,在对同一个数组做相同的处理时,先排过序的数组会明显快于未排序的数组,而且相比会快6倍之多。。 #include #include #include int main() { // Generate data con
为什么处理排序数组比未排序数组快
    今天在群里看到一个有意思的问题——为什么处理排序数组比处理没有排序的数组要快,这个问题来源于 StackoverFlow,虽然我看到代码略微知道原因,但是模模糊糊不够清晰,搜了很多博客也讲的不够明白,所以就自己来总结了。     首先来看一下问题,下面是很简单的一段代码,随机生成一些数字,对其中大于 128 的元素求和,记录并打印求和所用时间。 import java.util.Array...
为什么数组的值不变呢?
我的代码是如下的,我测过了,下标的确是变的,可是为什么给数组赋值时,只有前四个的值,循环后就不没有了呢?而且在输出第四项的时候还会多输出一个?也没有让它换行啊?rn#includern#includern#includernusing namespace std;rnstring opp,xx,yy,zz;rnstring table[16][4];rnint find(string tab[][2],string x,int n,int m)rnrn for(int i=0;i0)rn rn if(yy!=zz)rn rn cout<<"MOV"<<" "<>n;rn cout<
为什么数组不能循环呢?
代码如下:rn[code=VBScript]rndim q:q="中国-北京,中国-上海" '这里取北京、上海rndim qs:qs=split(q,",")rndim tmprnfor each tmp in qsrn dim temp:temp=split(tmp,"-")rn okweb=replace(moban,"AAAA",temp(1)) '这里将模板中AAAA替换数组中的北京、上海rnnext rnend ifrn[/code]rnrn打印输出temp(1)正常显示出 北京、上海,但是替换模板却始终不行,只能替换成一个北京,上海不见了。。。rnrn这个是什么状况啊?
读取数组
有个数组 int[] a=1,2,3rn先把它写入一个temp.dat文件,rn然后在把它给倒序读出来,3,2,1
2个数组相加,将一个数组写入另一个数组
已知数组a和数组b:rnrn[code=php]//数组a:rnarray (rn 0 => rn array (rn 'cust_no' => '310F6 1VA5A',rn 'lotno' => '2X15',rn 'part_count' => '0',rn ),rn 1 => rn array (rn 'cust_no' => '310F6 1VA5A',rn 'lotno' => '2Z25',rn 'part_count' => '5',rn ),rn)rnrn//数组b:rnrnarray (rn 0 => rn array (rn 'cust_no' => '310F6 1VA5A',rn 'lotno' => '2Z15',rn 'part_count' => '100',rn ),rn 1 => rn array (rn 'cust_no' => '310F6 1VA5A',rn 'lotno' => '3115',rn 'part_count' => '28',rn ),rn)[/code]rnrn把数组b的结果加入数组a,同cust_no,lotno对应的part_count累加。变成这样的结果:rn[code=php]rnarray (rn 0 => rn array (rn 'cust_no' => '310F6 1VA5A',rn 'lotno' => '2X15',rn 'part_count' => '0',rn ),rn 1 => rn array (rn 'cust_no' => '310F6 1VA5A',rn 'lotno' => '2Z15',rn 'part_count' => '105',rn ),rn 2 => rn array (rn 'cust_no' => '310F6 1VA5A',rn 'lotno' => '3115',rn 'part_count' => '28',rn ),rn)rn[/code]rn这样如何做到?需要用哪些数组函数?谢谢!
数组的读取
运用到 import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException;
为什么数组输出的是一个数值 “急”
arr=split(adminfield,",")rn'-----获取数组去除符号,后的值----rnfor i = 0 to ubound(arr)rn rn id=clng(arr(i))rn rnnextrnresponse.write i ' 2 这些是相应的值(数组中的)rnresponse.write id ' 77rnresponse.write arr(0) ' 66rnresponse.write arr(1) ' 77rnrn我想获得id 的值。现在id 的值等于77,只是一个元素,我想它输出的时候能是6677rn请问怎么实现啊?帮帮忙!!
list 直接输出为什么是一个数组?
在collection,例如list中,List&amp;lt;Integer&amp;gt; list = new ArrayList&amp;lt;&amp;gt;();list.add(1);System.out.println(list);直接借助于类对象的名字就可以输出正确list ,而数组则必须使用for循环逐个输出,或者是使用Arrays中tostring方法。这是为什么?小白,知道这样写,只想知道背后的为什么?已...
怎么判断一个数组是空数组
例如rndim arr()rn中间可能插入数据也可能没有rn之后怎么判断呢
将数组写入文件,读取文件到数组
将数组写入写出文件 将数组写入写出文件 将数组写入文件 读取文件到数组
控件数组可以实现,数组的数组呢?
控件复制一个时,VB会提示是数添加控件数组,添加后即可使用控件名(X)类的方式直接操作各个控件.rn但是数组呢?rn比如rnAA(0)的数据= BB()rnAA(1)的数据= BC()rnAA(2)的数据= FC()rnrnBB,BC,FC的数组是文件读过来的.
数组未赋值问题
Int型 1.#include  main() {    int i,*ptr;    int array[4];              //定义未赋值    for(i=0;i    {        printf("%d\n",array[i]);           //输出类似地址的那种一串数字    } }       2.#include  int a
JavaScript如何根据数组的值来读取数组的下标呢?
假设:rna[0]=78;rna[1]=22;rna[2]=45;rna[8]=98;rna[12]=12;rnrn如果我现在通过98这个数,怎么才能读到8这个下标呢?rn
请问一个数组的读取的问题!!!!
代码如下:rnrnrn rn 无标题文档rnrnrnrn rnrnrn显示结果是:rnrn0rnPANG.HY_WTRD1.WTrn雨量rn1rnPANG.HY_WTRD1.WLrn水位rn0rnrnrn1rnrnrn显然后一个循环没有显示出数组内的内容!请问这是为什么?? rnrnrn
数组与图片
TensorFlow实战教程,该课程主要分享两个TensorFlow卷积神经网络实战的案例,第一个是手写数字识别案例,第二个是人脸识别案例。
Pillow简单使用--数组到图片、图片到数组转换
from PIL import Image #PIL pakage name is Pillow import numpy as np im = Image.open(“baidu.jpg”) print(im.format, im.size, im.mode) im.show() arr = np.array(im) print(arr.shape, a
如何读取一个xml文件到数组
我想读取一个xml文件,内容如下,将其中的id和c写到一个数组,data(id,c)里面,从来没接触过xml文件,不知道如何读取,还请大侠指点一二,谢谢。rn[code=html] rn- rn rn rn rn rn rn rn rn [/code]
怎样将字符型数组转为ULONG型的数组呢?
如题
将一个数组逆序-递归实现
题目:给定一个数组,逆序输出。要求递归实现。 public class Main { public static void main(String[] args) { int[] arr = {1,2,6,5,4,4}; getRes(arr); } public static void getRes(int[] arr) { ...
怎么将一个数组拆分????
比如一个数组:rn维数并不是固定的rntempballhnag[][] = tempdata[1],145, tempdata[0], hang - 1 - tempdata[1], hang - 1 - tempdata[0];rnrn生成:rn tempballhnag[0][0] = tempdata[1] ;rn tempballhnag[0][1] = 145 ;rn tempballhnag[1] = tempdata[0] ;rn tempballhnag[2] = hang - 1 - tempdata[1];rn tempballhnag[3] = hang - 1 - tempdata[0];
将一个数组变成二叉树
二叉树是每个节点最多有两个子树的树结构。通常子树被称作 “左子树” 和 “右子树”。 比如数组: int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9} 变为二叉树为: 分析: 1、首先要定义每一个结点,每一个结点包括自身值,左结点和右结点,实现get、set方法。 public class Node { public int
java 将一个数组逆序输出。
题目:将一个数组逆序输出。 代码:import java.util.*; public class lianxi31 { public static void main(String[] args) { Scanner s = new Scanner(System.in); int a[] = new int[20]; System.out.println("请输入多个正整数(输入-
将一个数组转换成字符串
public static String toString(int[] arr) {         StringBuilder str = new StringBuilder();         str.append(&quot;[&quot;);         for (int i = 0; i &amp;lt; arr.length; i++) {             if (i == arr.length -...
将一个数组的行列互换
#include&lt;stdio.h&gt; #include&lt;windows.h&gt; int huhuan( int arry[3][3]); int main() { int a[3][3]={{1,2,3},{4,5,6},{7,8,9}}; huhuan(a); system("pause"); return 0; } int huhuan( int arry[3][...
python实现将一个数组逆序输出。
方法一: def printTheReverseArray(self): list_1 = [1, 2, 3, 4, 5, 6, 7] length = len(list_1) for i in range(0, length): print(length - i,end="")方法二: def print
将List集合转换List数组,将List数组转换为String数组,将String字符串放到String数组中,将一个数组赋值给另一个数组
1.将List集合转换List数组 从数据库中查到一个List集合: List siList = suppliesService.getByIds(ids); //根据物资id的数组查询物资集合, List supList = new ArrayList();  //创建一个List数组存放物资编号,      for(Supplies su :siList)     {  
将float数组存入文本文件中,读取的是乱码??
将float数组存入文本文件中,读取的是乱码??,期待高手解决
改造数组,将一个数组(每一项是对象)的值放到另一个数组中去
改造数组,将一个数组(每一项是对象)的值放到另一个数组中去 主要知识点:for…in…循环 介绍 arr1 = [{1:'姓名'}, {2:'性别'},{3:'年龄'},{4:'爱好'},{5:'技能'}] arr2 = [{ a :1,b :'姓名',c : '姓名',}, { a :2,b :'性别',c : '性别',}, { a :3,b :'年龄',c : '年龄',},...

相似问题

5
请问如何使用js正则表达式获取所有class="none"的p标签,使用数组存储
3
Android 本地SD图片读取,同名覆盖后,再次读取为什么还是原来的图片,而不是新的
8
SpringMvc 返回model对象如何通过js获取model对象所传的json?
1
SICK LMS511 激光雷达获取的数据怎么建立三维点云图
2
java从同一个字节数组读取数据,两个输入流为什么会互相受影响
4
c++如何批量读取多个文件夹下的文件并且把它赋值到数组中去?
1
javascript读取2个json数组,并且合并成一个数组,再排序
8
javascript开发读取一个excel文件,并且提取里面的表格到数组,用javascpt怎么写?
4
name属性相同的两个个select2标签值合并到一个数组里了 如何获取每一个name对应标签的值
2
AccessibilityNodeInfo是一个ImageView如何获取图片内容
3
c++中用openCV的IplImage*或Mat读取图片后如何转化为File文件流(或者二进制数据)的格式
3
C++中int16_t和byte[]数组互相转换如何实现?
1
java使用jxl读取excel时行数出错
5
我用ssm写的项目,在A方法中获取了一个list数组怎么直接在b方法中使用
2
js生成的一个随机图片地址数组,<img>怎么引用它呢?
0
java数组一个有点棘手的算法问题
4
获取数组中picture的第一个img
1
C++如何将文件一行行的读出,再写入到类中(对象数组?),每一行为一个对象的数据,并且之后还可以随意访问
3
关于获取枚举里数组的遍历方法
6
ajax获取数据后,获取到的数据数组报错是什么原因????(数据是可以打印出来的)