Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C#,.Net 4.0中读取像素值时出现问题_C#_Image Processing_Aforge - Fatal编程技术网

在C#,.Net 4.0中读取像素值时出现问题

在C#,.Net 4.0中读取像素值时出现问题,c#,image-processing,aforge,C#,Image Processing,Aforge,我正在学习C#,我正在尝试制作有关图像处理示例的家庭作业。我试图读取灰度jpeg图像中沿水平线的像素值。我制作的一些照片告诉我,我正在阅读一张格式化的8bpping图像(这对我来说是一种惊喜,因为我相信jpeg图像根本不使用调色板)。在windows窗体的适当控件中加载图像的代码如下所示: try { myImage = ( Bitmap ) Image.FromFile(imageName); } catch { MessageBox .Show("Un

我正在学习C#,我正在尝试制作有关图像处理示例的家庭作业。我试图读取灰度jpeg图像中沿水平线的像素值。我制作的一些照片告诉我,我正在阅读一张格式化的8bpping图像(这对我来说是一种惊喜,因为我相信jpeg图像根本不使用调色板)。在windows窗体的适当控件中加载图像的代码如下所示:

 try
  {
       myImage = ( Bitmap ) Image.FromFile(imageName);
  }
  catch
  {
    MessageBox .Show("Unable to load the image" , Text, MessageBoxButtons .OK, MessageBoxIcon .Hand);
  }
  pictureBox1.Image = myImage ;  
然后,当按下按钮时,我尝试沿着图像中的任意直线路径读取像素,并在csv文件中列出它们。我假设,由于图像是灰度级图像,读取红色就足够了(是吗?其他颜色分量都是相同的;在我看来,使用getBrightness似乎有些过分):

在同一程序中制作的柱状图在17(??)的倍数处显示出明显不同的计数峰值

为了进行真实性检查,我在Perl中做了类似的事情(我在Perl中有更多的经验,我只是在学习C#),使用模块GD,读取同一图像中相同路径上的像素,我得到了非常不同的值

imageJ的直方图drwan的第一行如下所示:

0   0
1   0
2   1
3   1
4   15
5   81
6   304
7   984
8   2362
9   206144
10  2582
11  1408
12  653
13  451
14  345
15  321
16  277
17  288
一个完全不同的故事

有人可能会向我解释我犯了多么愚蠢的错误

非常感谢

-----------------------------------后来编辑--------------------------------------


事情变得越来越有趣。使用C#编写的RGE图像实验室读取相同的图像时,我得到了相同的错误:直方图显示像素值为17的倍数的离散计数。用Java编写的ImageJ读取图像,我得到了正确的直方图。现在,我试图找出是否有一种方法,使用C#,以某种方式管理图像读取,以便能够获得正确的值,或者这是一个主要问题,替代方法是:放弃或执行某种低级图像读取(jpeg格式的硬内容…)

将4bpp通道转换为8bpp通道时,17的倍数实际上非常常见。0x00、0x11、0x22。。。0xFF都是17的倍数


在我看来,您的量化16色灰度图像存在抖动。

将4bpp通道转换为8bpp通道时,17的倍数实际上非常常见。0x00、0x11、0x22。。。0xFF都是17的倍数


在我看来,您有一个量化的16色灰度图像,抖动。

谢谢您的建议,但是使用完全不同的程序打开图像,比如:清晰地显示一个8 bpp的灰度图像,直方图看起来不错。@Daniel也许您可以上传图片?谢谢您的建议,但是用一个完全不同的程序打开图像,比方说:清晰地显示一个8 bpp的灰度图像,直方图看起来很好。@Daniel也许你可以上传图片?问题不限于一个图像,但其他几个图像也有同样的问题。二进制检查显示图像是通过:JFIF Intel(R)创建的JPEG库,版本[2.0.14.46]请上载一张显示此问题的图像。Prooblem不限于一张图像,但其他几张图像也有相同的问题。二进制检查显示该图像是通过以下方式创建的:JFIF Intel(R)JPEG库,版本[2.0.14.46]请上载一张显示此问题的图像。
0; 256; 17
1; 256; 0
2; 256; 17
3; 256; 0
4; 256; 17
5; 256; 0
6; 256; 17
7; 256; 0
8; 256; 17
9; 256; 0
10; 256; 17
............
66; 256; 17
67; 256; 34
68; 256; 51
69; 256; 68
70; 256; 85
71; 256; 85
72; 256; 102
73; 256; 85
0   0
1   0
2   1
3   1
4   15
5   81
6   304
7   984
8   2362
9   206144
10  2582
11  1408
12  653
13  451
14  345
15  321
16  277
17  288