Я ищу некоторый алгоритм для совместных объектов, например, объединить яблоко в дерево в цифровом изображении и некоторую демонстрацию в Matlab. Пожалуйста, покажите мне некоторые материалы. Спасибо за чтение и помощь!Как объединить некоторые объекты в цифровом изображении?
ответ
Я не уверен, что если я возьму на себя вопрос, но если вы хотите наложить какое-то изображение, как и слои фотошопа, вы можете использовать некоторые характеристики изображения, чтобы через этот символ определить степень прозрачности.
Например, рассмотрите возможность использования двух изображений RGB. Изображение A будет перекрыто изображением B. Для этого мы будем использовать яркость изображения B для определения степени прозрачности (255 = 100%). Интенсивность = пиксель/255;
NewPixel = (PixelA * (1 - Intensity)) + (PixelB * Intensity);
В интенсивности представляет собой процент, и каждый пиксель умножается на дополнении этого процента, полученная в результате сумма будет никогда переполнения более 255 (макс graylevel)
int WidthA = imageA.Width * channels;
int WidthB = imageB.Width * channels;
int width = Min(ImageA.Width, ImageB.Width) * channels;
int height = Min(ImageA.Height, ImageB.Height);
byte *ptrA = imageA.Buffer;
byte *ptrB = imageB.Buffer;
for (int y = 0; y < height; y++)
{
for (int x = 0; x < width; x += channels, ptrA += channels, ptrB += channels)
{
//Take the intensity of the pixel. If RGB (channels = 3), intensity = (R+B+G)/3. If grayscale, the pixel value is intensity itself
int avg = 0;
for (int j = 0; j < channels; ++j)
{
avg += ptrB[j];
}
//Obtain the intensity as a value between 0..100%
double intensity = (double)(avg/channels)/255;
for (int j = 0; j < channels; ++j)
{
//Write in image A the resulting pixel which is obtained by multiplying Image B pixel
//by 100% - intensity plus Image A pixel multiplied by the intensity
ptrA[j] = (byte) ((ptrB[j] * (1.0 - intensity)) + ((intensity) * ptrA[j]));
}
}
ptrA = imageA.Buffer + (y * WidthA));
ptrB = imageB.Buffer + (y * WidthB));
}
Вы можете также изменить этот алгоритм для того, чтобы перекрытие Изображение A над B, в другом месте. Я предполагаю, что координата изображения B (0, 0) будет перекрывать изображение. Координата (0, 0).
Но еще раз, я не уверен, что это то, что вы ищете.
Спасибо Andres очень много! То, что ты сказал, почти то, что мне нужно. Но мне интересно, что на изображении есть много объектов, например, стул, стол, холодильник ... и я просто хочу наложить яблоко на стол, мне нужно определить границу стол и яблоко? Если да, как я могу это сделать? –
Первое, что вам нужно решить (или проблема): как определить позицию объекта, который я хочу совместить? Это исправлено, легко найти? Здесь у вас есть проблема «сегментации объектов», и это не очень просто. – Andres
Если у вас есть позиция и размеры объекта, который вы хотите использовать при перекрытии, вы можете создать маску. Эта маска представляет собой просто двоичное изображение (черно-белое). Белые пиксели соответствуют пикселям объекта, представляющего интерес для исходного изображения. Черные пиксели будут игнорироваться. Таким образом, вы можете использовать один и тот же алгоритм выше, но для каждого пикселя, посмотрите изображение маски, чтобы определить, следует ли его рисовать поверх фонового изображения или просто игнорировать. – Andres
- 1. Как объединить некоторые объекты-спаннинг?
- 2. Удаление снеговика в цифровом изображении
- 3. Отрицательные значения в цифровом изображении CT Scan
- 4. Точно определить общую площадь листа в цифровом изображении в matlab
- 5. Как объединить объекты предложения?
- 6. Tensorflow Count Объекты в изображении
- 7. Как объединить игровые объекты?
- 8. Как объединить объекты ActiveRecord?
- 9. Как объединить объекты весной?
- 10. Как объединить объекты в php?
- 11. Объединить объекты
- 12. Как объединить массивы, содержащие объекты?
- 13. Как отметить обнаруженные объекты в новом изображении?
- 14. Как посчитать круговые объекты в изображении
- 15. Как идентифицировать разные объекты в изображении?
- 16. Как объединить два JS объекты
- 17. Объединить объекты в массиве
- 18. Объединить объекты JavaScript
- 19. Java: Как объединить объекты типа
- 20. Как объединить объекты NSDate днем?
- 21. Как объединить два объекты SwiftyJSON
- 22. Как объединить объекты JSON Swift?
- 23. Как можно объединить особые объекты ...?
- 24. Как объединить сложные объекты JS
- 25. Как объединить объекты в вложенные объекты по значению в объекте?
- 26. Обнаружить «слитые» объекты на изображении
- 27. Как объединить некоторые элементы массива в php?
- 28. Объединить некоторые из столбцов
- 29. Вытащите некоторые вложенные объекты
- 30. Finding "Отсутствует" объекты в изображении, используя OpenCV
При описании вашей проблемы вы должны быть более конкретными. Перепишите его, и, возможно, у кого-то есть ответ. –
Вы имеете в виду форму tweening/morphing? что-то вроде: http://tecfa.unige.ch/guides/flash/ex/shape-tweening-intro/flash-cs3-shape-tweening-hints.html – Amro