如题,我在“画图”中用画笔画了一个多边形,分别保存为P_1.jpg和P_2.jpg(颜色、大小都没有改变,只是同一个文件被保存成两个了)。其中只把P_2.jpg的多变形的一条边擦掉一点点。
这样,除了擦掉的部分其他的都应该一样的,我想。
通过程序读入两张图片,分别取得各个像素的R、G、B的值,然后比较相同位置画素的值,不同的地方画上小红圈。可是,出乎意料的是,小红圈全部沿着多变形画了一圈,和预想的完全不一样。有知道图像比较的朋友吗?是我的方法不对?能不能提示我一下呢?
这样,除了擦掉的部分其他的都应该一样的,我想。
通过程序读入两张图片,分别取得各个像素的R、G、B的值,然后比较相同位置画素的值,不同的地方画上小红圈。可是,出乎意料的是,小红圈全部沿着多变形画了一圈,和预想的完全不一样。有知道图像比较的朋友吗?是我的方法不对?能不能提示我一下呢?
Byte数组
方法
public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
MemoryStream ms = new MemoryStream();
imageIn.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
return ms.ToArray();
}
通过循环比较每个Byte
你保存的两张图片用自带的图像编辑工具将一个点(1个像素)更改
将两张图片分别存在两个数组中
然后去对比
可以先用MSG或者text输出对比结果
看看实际的比较结果跟预想的有没出入
(可以用数组将那个位/像素对比出错直接显示出来更方便去判断比较方法的正确性)
如果这里没问题
你后面的比较也就可以通过了 或者也可以直接边取边比
GetPixel(j, i)