Я хочу получить изображение phash.
для локального файла:
img = cv2.imread(*local-file-path*)
phash = cv2.img_hash.pHash(img)
хорошо работает.
Но я не знаю, как это сделать с буфером изображений, например, req.body:
img_array = np.frombuffer(req.body, np.uint8)
img = cv.imdecode(img_array, 1)
phash = cv.img_hash.pHash(img)
проблема в том, что imdecode может не возвращать ничего для той же картинки, что imread работает нормально. Я не знаю, почему.
Поскольку на вход функции pHash входит массив CV_8UC3 (для RGB), как преобразовать буфер в массив CV_8UC3?
это часть req.body:
\x1c=Q\xdb\x1c$\x1dG\x89\xc9\x8f\xf5C\xb4\xa33;\xe1WPQ\xcc\x19\xc0\xd6\xd9\xcd\x04rC\x89\xd6xi\x80\xb9\xc0j\x0bp\x01\xd4\xe7\xe3\xe8\x81\xadn\x0bG\x13\x1e8&q\t\x9c\x14w!\x9e\x1a`i\xf3K\xe7\x84 \x8d)\xa9\xb9\x1f\xeb\x82e\xb5D\x8c\xb2\x84\xee\xb5\xc8 =\xf84}\x9e\xc4\xfaa\xaa\x9a^s*\xd9e\x0e\x92k!\x1d\xf3\xf6\xc2\xbdN$9@\xe1\x89Nri\xf9\x8aG\x08FR\xdf)\xe7\x006e\xdd\xd7\x0c^V\x10+\xe9\xea\x00\x8d\xcb\xbf8?6\xc0\xb8\x95\x878\t7\xb8\xd3\xea\xf9\xb3\x8d:\x8b\x8a\xa4\xd3\x1ce\t\x89\xc2\x91\xd9\x04\x869\xce\x08\xd0\xb3-#lg\xa7\xfe\x1a,&\xac\x8e\xb2\xe1\xb64\xa1\x00d\x06i(S/Zk\xaa5\x15\x12:\x7f+\xfd\x91\xb1e\xa4\xef\xd9\x04\x9998\x86\xd4\xdd\x08\xe9\x12;\x91\xeb4e\xa7\x1f44\xbc\xcb \xb2\x82\xcf\x0e\xd5\x94;\x1d\xe6\n\x1dM\xf4@P\x8b\xf2\xf6\xc2\xae\xad^\x1d\xd0f\xa38(\xd4\xf9\xa11n\xcd\x90\xab/\x9e\x0f\x14e\xbflI\xc8\xb8\xc2\xef\x8d\x83dm\x8d\xa0\xc4\xb3\x85\xf2\x13\x8a\xc5^\xcf\xf7\x84=6\x98_&\x10!\x1b\x96q8M\xbeB\\\xe8\xe6U\x1c\x03\xbb\x02; \xaf\x98\xc0\x8e\xdf&>h\t\x01LN\x13(\x94v\xc1n!\xfd\xe1\xdb\x15h\x9f\xd5\x9f\'d)\xcf\xc9\xf4F\x1f\x80\xaej\x83\xc3Tv\xc6\x82\xedM\xf0;h\x85&i\x90\x97\x9e\x0bp\x1e(%\xa4\x04\xefD\xb0O\x96>F\xb7\x7f\x9a\rK\x87\xfb\xbb}O\xd6;\xea\x82\xcb6\x86\xafz\xe6E\xc7\xd38\xe2.\xd6\xfcN'
и URL изображения http://pic.yupoo.com/wytest03/51c60f39/a154e2b9.jpg