【发布时间】:2014-02-09 22:37:40
【问题描述】:
我正在编写一个图像分析程序,它允许用户在图像上选择两个坐标。然后程序根据这两个点将图像裁剪为一个矩形。然后程序会找到图像的直方图分布。
我遇到的问题是我想将裁剪后的图像与包含该裁剪图像的另一个图像 (imagetwo) 进行比较。我目前的计划是通过创建一个与裁剪图像大小相同的块然后在 imagetwo 上移动来扫描 imagetwo,并在它移动时计算直方图分布。然后将块与裁剪后的图像进行比较。
我怎样才能做到这一点?我知道这需要一些 for 循环,但我很难弄清楚逻辑。
到目前为止的代码逻辑:
//Size of cropped image
int width = croppedimage.getWidth();
int height = croppedimage.getHeight();
Image tempImage;
Image imageTwo;
//Match pattern
for(x=0; x<width; x++){
for(y=0; y<height; y++){
tempImage.addPixel(imageTwo.get(x,y);
}
}
这将检索图像 2 中具有裁剪图像大小的第一个块。但是我想一次一个像素地沿着 imageTwo 移动块。
【问题讨论】:
-
我有点困惑。基本上,您正在从图像中裁剪出一个矩形。然后在原始图像上为原始图像的每个可能窗口定义一个大小相同的窗口(与裁剪后的图像相同)。这样直方图会在同一位置匹配吗?
-
同一事物有两张图像,但角度不同(即,您为同一棵树拍摄两张照片)。这些图像共享一些相同的细节,但也显示了其他图片中没有的细节。我目前允许用户取出图像的一小部分,然后检查它是否在另一张图像上,如果是,那么它将根据匹配将图像合并在一起。
标签: java image image-processing