Учитывая пороговое значение T и набор растровых изображений, я хочу создать результирующее растровое изображение «br», так что i-й бит «br» установлен в 1, только если i ' й бит устанавливается в 1 в> = T растровых изображениях.Логический оператор И с условием
Я попытаюсь проиллюстрировать мой вопрос на примере: Предположим, что мы имеем 4 растровых изображений (равностепенной длины) и T = 3:
b1 (10000)
b2 (01110)
b3 (10110)
b4 (00010)
Тогда мой полученный растровый ш = (00010) - потому что только 4-й бит установлен в 1 в> = 3 растровых изображениях. Если T = 2, то br = (10110).
Одним из наивных способов сделать это было бы перебрать каждый битмап и сохранить вектор, в котором хранится счет бит i в индексе i'th. После этого можно прокручивать этот вектор «счет».
Другим способом (я думаю) было бы реализовать модифицированный логический оператор И таким образом, чтобы в результирующем растровом изображении i-й бит был установлен в 1, если он установлен в 1 в положениях> = Т.
Есть ли другой эффективный способ сделать это? Я использую C++ и EWAHBoolArray (https://github.com/lemire/EWAHBoolArray). В настоящее время у них нет возможности выполнять операцию И между несколькими растровыми изображениями. Любой ответ очень ценится!
Вы можете иметь несколько растровых изображений D, такие, что ди-джей ей цифра суммы растровых изображения B (то есть, г-й бит Dj является ей цифрой двоичного числа, которое является количеством растровых изображений (множества B), которые имеют 1 в позиции i). В вашем примере они будут {(01010) (10110) (00000)}. – Beta
Ужасный вопрос, пожалуйста, прочитайте о [MCVE]. –