#c #image #pixel #mbed
#c #изображение #пиксель #mbed
Вопрос:
Я работаю с камерой OV7670, mbed и лазером, используя следующий код
void CameraSnap(){
led4 = 1;
// Kick things off by capturing an image
camera.CaptureNext();
while(camera.CaptureDone() == false);
camera.ReadStart();
t1 = t.read_ms();
unsigned colorpixel;
unsigned int byte1, byte2;
int x;
int y;
int i = 0;
for (int i=0; i < SIZEX; i ) {
Maximo[i] = 0;
PuntosMaximo[i] = 0;
}
for(y = 0; y<SIZEY; y )
for(x = 0; x<SIZEX; x )
{
// Read in the first half of the image
if(format == 'b')
{
camera.ReadOnebyte();
}
else
if(format == 'y' || format == 'r')
{
byte1 = camera.ReadOnebyte();
//pc.putc(byte1);
}
// Read in the Second half of the image
byte2 = camera.ReadOnebyte();
red = (byte1 amp; 0xF8)>>3;
green = (((byte1 << 8) | byte2) amp; 0x5E)>>5;
blue = (byte2 amp; 0x1F);
unsigned short data = (red green blue) /3;
pc.putc(data);
if ((red > Maximo[x] )amp;amp; (green < 10) amp;amp; (blue < 10 )) {
Maximo[x] = rojo;
PuntosMaximo[x] = y;
}
}
camera.ReadStop();
t2 = t.read_ms();
Я хочу, чтобы программа сохраняла пиксели максимальной интенсивности Maximo[i]
из 24-битного изображения RGB, но в устройстве захвата OV7670 (https://mbed.org/users/edodm85/code/OV7670_Test_Code/file/d0d4760d32b2/main.cpp ) он показывает только черно-белое изображение.
Не могли бы вы дать мне несколько советов? Заранее спасибо!
Комментарии:
1. Похоже, что часть вашего кода отсутствует, и форматирование перепутано? И почему тег C?
2. Я использую платформу mbed, и она похожа на c, остальная часть кода исправляет искажение объектива (он был преобразован из matlab, поэтому я знаю, что он работает)
3. Посмотрите на строку ниже
"Start reading in the image data ..."
и скажите мне, правильно ли это. Кроме того, перепутанное форматирование затрудняет чтение — вы должны исправить это, чтобы людям было проще помогать вам.4. спасибо за ваши советы, я здесь новичок 🙂 Я исправлю это как можно скорее