当我运行下面的代码时,我得到了这个消息 注意:未定义的偏移量:第50行的C:\ wamp \ www \ cbir \ index.php中的226
我认为这些代码行会导致错误 $红色[$ R] ++; $果岭[$克] ++; $蓝调[$ B] ++;
$reds = array();
$blues = array();
$greens = array();
$freqr = array();
$freqb = array();
$freqg = array();
$info = getimagesize($_FILES['image']['tmp_name']);
$width = $info[0];
$height = $info[1];
$totalpixels = $width * $height;
$img = imagecreatefromjpeg($_FILES['image']['tmp_name']);
if ($img) {
for ($i = 0; $i < $height; $i++) {
for ($j = 0; $j < $width; $j++) {
$rgb = imagecolorat($img, $j, $i);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
// Add counts to our histogram arrays for each color.
$reds[$r]++;
$greens[$g]++;
$blues[$b]++;
}
}
答案 0 :(得分:5)
您初始化了一个$reds
的空数组,但没有定义$reds[$r]
(例如)。
而不是:
$reds[$r]++;
使用:
if(!isset($reds[$r])) {
$reds[$r] = 0;
}
$reds[$r]++;
类似于$greens
和$blues
。
或者,由于要使用的键是0到255,您可以先使用以下命令初始化数组:
$reds = array_fill(0, 256, 0); // instead of using: $reds = array();