В данный момент мой Raspberry Pi недоступен - все, что я хочу сказать, это то, что там был какой-то дым, и я занимаюсь программным, а не аппаратным обеспечением! В результате я проверил это только на Mac. Использует Numba
.
Сначала я использовал ваш код Numpy на этих 2 изображениях:
и
Затем я реализовал то же самое, используя Numba
. Numba
версия работает в 5,5 раз быстрее на моем iMac. Поскольку Raspberry Pi имеет 4 ядра, вы можете попробовать поэкспериментировать с:
@jit(nopython=True,parallel=True)
def method2(image1,image2,transparency):
...
Вот код:
#!/usr/bin/env python3
import numpy as np
from PIL import Image
import numba
from numba import jit
def method1(image1,image2,transparency):
result = image1*transparency+image2*(1-transparency)
return result
@jit(nopython=True)
def method2(image1,image2,transparency):
h, w, c = image1.shape
for y in range(h):
for x in range(w):
for z in range(c):
image1[y][x][z] = image1[y][x][z] * transparency + (image2[y][x][z]*(1-transparency))
return image1
i1 = np.array(Image.open('image1.jpg').convert('RGB'))
i2 = np.array(Image.open('image2.jpg').convert('RGB'))
res = method1(i1,i2,0.4)
res = method2(i1,i2,0.4)
Image.fromarray(np.uint8(res)).save('result.png')
Результат:
Другие мысли ... Я сделал композит на месте, переписав ввод image1
, чтобы попытаться сэкономить место в кеше. Это может помочь или помешать - пожалуйста, экспериментируйте. Возможно, я не обработал пиксели в оптимальном порядке - пожалуйста, поэкспериментируйте.
IE наиболее вероятен в режиме причуд. Предыдущие версии IE не потянули select
элемент самостоятельно и таким образом это не могло быть разработано правильно (а также некоторые причуды z-порядка), таким образом, на IE <8 Вы просто не можете сделать этого, если Вы не повторно реализуете что-то как select
в JS. Смотрите на инструменты разработчика (F12) для наблюдения, в котором находится режим IE браузера и документа; если это говорит "Internet Explorer 8" для режима Browser и не "Режима Quirks" для режима документа, необходимо быть в порядке :)
Следующий отрывок хорошо работает здесь (IE8β2):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<style type="text/css">
select {
border: 1px solid red;
}
</style>
</head>
<body>
<form>
<select>
<option>1</option>
<option>2</option>
</select>
</form>
</body>
</html>