Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.
Например, ниже - класс ученика, который будет использовать его в нашем коде.
public class Student {
private int id;
public int getId() {
return this.id;
}
public setId(int newId) {
this.id = newId;
}
}
Приведенный ниже код дает вам исключение с нулевым указателем.
public class School {
Student obj_Student;
public School() {
try {
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
Поскольку вы используете Obj_Student
, но вы забыли инициализировать его, как в правильном коде, показанном ниже:
public class School {
Student obj_Student;
public School() {
try {
obj_Student = new Student();
obj_Student.setId(12);
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
Я сделал что-то подобное путем разложения изображений на подписи с помощью , вейвлет преобразовывает .
Мой подход должен был выбрать старшее значащее n коэффициенты от каждого преобразованного канала и запись их местоположения. Это было сделано путем сортировки списка (питание, местоположение) кортежи согласно брюшному прессу (питание). Подобные изображения совместно используют общие черты, в которых у них будут значительные коэффициенты в тех же местах.
я нашел, что было лучше преобразовать в изображение в формат YUV, который эффективно позволяет Вам подобие веса в форме (Y канал) и цвет (ультрафиолетовые каналы).
Вы можете в находке моя реализация вышеупомянутого в mactorii, который, к сожалению, я не продолжал работать так же, как у меня должен быть:-)
Другой метод, который некоторые мои друзья использовали с удивительно хорошими результатами, должен просто изменить размеры Вашего изображения вниз для высказывания, 4x4 пикселя и хранилище, которые являются подписью. То, как подобные 2 изображения, может быть выиграно, говорят, вычисляя манхэттенское расстояние между 2 изображениями, с помощью соответствующих пикселей. У меня нет деталей того, как они выполнили изменение размеров, таким образом, Вам, вероятно, придется играть с различными алгоритмами, доступными для той задачи найти ту, которая подходит.
Существуют некоторые хорошие ответы в другом потоке на этом, но интересно, работало ли что-то включающее спектральный анализ? Т.е. сломайте изображение к, он - фаза и амплитудная информация, и сравните тех. Это может избежать некоторых проблем с обрезкой, преобразованием и различиями в интенсивности. Так или иначе это - просто я размышляющий, так как это походит на интересную проблему. Если Вы искали http://scholar.google.com , я уверен, что Вы могли бы придумать несколько статей об этом.
Как первая передача, можно попытаться использовать цветные гистограммы. Однако действительно необходимо сузить проблемную область. Универсальное изображение, соответствующее, является очень тяжелой проблемой.
Вы могли выполнить своего рода соответствующую блоку оценку движения между двумя изображениями и измерить полную сумму невязок и затраты вектора движения (во многом как, можно было бы сделать в видео кодере). Это компенсировало бы движение; для бонусных очков сделайте оценку движения аффинного преобразования (компенсирует масштабирование и протяжение и подобный). Вы могли также сделать перекрытые блоки или оптический поток.
В зависимости от того, сколько точных результатов Вам нужно, можно просто повредить изображения в n x n пиксельные блоки и проанализировать их. Если Вы получаете различные результаты в первом блоке, Вы не можете прекратить обрабатывать, приведя к некоторым повышениям производительности.
Для анализа квадратов можно, например, получить сумму значений цвета.
Это походит на проблему со зрением. Вы могли бы хотеть изучить Адаптивное Повышение, а также алгоритм Извлечения Строки Записей. Понятия в этих двух должны помочь с приближением к этой проблеме. Граничное обнаружение является еще более простым местом, чтобы запуститься, если Вы плохо знакомы с алгоритмами визуализации, поскольку оно объясняет основы.
До параметров для классификации:
Некоторые программные продукты распознавания изображений на самом деле не чисто основаны на алгоритме, но используют нейронная сеть понятие вместо этого. Выезд http://en.wikipedia.org/wiki/Artificial_neural_network и а именно, NeuronDotNet, который также включает интересные образцы: http://neurondotnet.freehostia.com/index.html
Это - трудная проблема! Это зависит от того, насколько точный необходимо быть, и это зависит от того, с какими изображениями Вы работаете. Можно использовать гистограммы для сравнения цветов, но это, очевидно, не принимает во внимание пространственное распределение тех цветов в рамках изображений (т.е. формы). Граничное обнаружение, сопровождаемое некоторой сегментацией (т.е. выбирание форм), может обеспечить шаблон для соответствия против другого изображения. Можно использовать матрицы совпадения событий для сравнения структур путем рассмотрения изображений как матрицы пиксельных значений и сравнения тех матриц. Существуют некоторые хорошие книги там по соответствию изображения и машинному зрению - поиск на Amazon найдет некоторых.
Hope это помогает!
Вы могли использовать Перцепционная Разность Изображения
, Это - утилита командной строки, которая сравнивает два изображения с помощью перцепционной метрики. Таким образом, это использует вычислительную модель зрительной системы человека, чтобы определить, отличаются ли два изображения визуально, таким образом, незначительные изменения в пикселях проигнорированы. Плюс, это решительно сокращает количество ложных положительных сторон, вызванных различиями в генерации случайных чисел, ОС или различиях в архитектуре машины.
Я использовал , ОТСЕИВАЮТ , чтобы повторно обнаружить te тот же объект в различных изображениях. Это действительно мощно, а скорее сложно, и могло бы быть излишеством. Если изображения, как предполагается, довольно подобны, некоторые простые параметры на основе различия между двумя изображениями могут сказать Вам вполне немного. Некоторые указатели:
Существует связанное использование исследования Kohonen нейронные сети/сами, организующие карты
еще Обе академических системы (Google для PicSOM) или меньше академика
( http://www.generation5.org/content/2004/aiSomPic.asp , (возможно не подходящий для всех сред работы)), представления существуют.
pHash может вас заинтересовать.
перцепционный хэш n. отпечаток аудио, видео или графического файла, который математически основан на аудио или визуальном контенте, содержащемся в нем. В отличие от криптографических хеш-функций, которые полагаются на лавинный эффект небольших изменений входных данных, приводящих к радикальным изменениям выходных данных, перцептивные хеш-функции «близки» друг к другу, если входные данные визуально или на слух похожи.