Исходя из ответа Найка. Его простота для реализации метода на основе лапласа с помощью opencv:
short GetSharpness(char* data, unsigned int width, unsigned int height)
{
// assumes that your image is already in planner yuv or 8 bit greyscale
IplImage* in = cvCreateImage(cvSize(width,height),IPL_DEPTH_8U,1);
IplImage* out = cvCreateImage(cvSize(width,height),IPL_DEPTH_16S,1);
memcpy(in->imageData,data,width*height);
// aperture size of 1 corresponds to the correct matrix
cvLaplace(in, out, 1);
short maxLap = -32767;
short* imgData = (short*)out->imageData;
for(int i =0;i<(out->imageSize/2);i++)
{
if(imgData[i] > maxLap) maxLap = imgData[i];
}
cvReleaseImage(&in);
cvReleaseImage(&out);
return maxLap;
}
Вернет короткое указание, указывающее на обнаруженную максимальную резкость, которая, основываясь на моих тестах на образцах реального мира, является довольно хорошим индикатором того, если камера находится в фокусе или нет. Неудивительно, что нормальные значения зависят от сцены, но много меньше, чем метод FFT, который должен иметь значение ложной положительной скорости, чтобы быть полезным в моем приложении.
Похоже, что вы спрашивали здесь пару раз ( 1 2 ), но, возможно, ответы были запутанными? Позвольте мне быть ясным.
Невозможно запустить клиент Oracle на Raspberry Pi. *
Oracle не поддерживает архитектуру процессора ARM, которую использует Raspberry Pi. Вы загрузили и распаковали Oracle Instant Client, но он не может работать. А без клиентских библиотек Oracle cx_oracle не будет работать, как и универсальные коннекторы Python ODBC.
Есть несколько альтернатив использованию Oracle Instant Client - в приведенном выше связанном ответе перечислено несколько, а в документации Python перечислены другие .
Возможно, проще всего использовать библиотеку Oracle JDBC для подключения - установить JPype, JayDeBeApi и библиотеку Oracle JDBC (ojdbc7.jar).
* Хорошо, технически вы можете запустить Oracle Client на Raspberry Pi, люди сделали это, запустив эмулятор x86 за 30 долларов . Но это, вероятно, сложнее, чем вы хотите.