python - 将地图和图像相乘 OpenCV2
问题描述
我目前使用下面的代码有一个图像的显着图:
img = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
saliency = cv2.saliency.StaticSaliencyFineGrained_create()
(success, saliencyMap) = saliency.computeSaliency(image)
# cv2.imshow("Image", image)
cv2.imshow("output", saliencyMap)
输出是下面的显着图。它是标准化的(我相信),并且数组只包含 0 到 1 之间的值。
我想知道是否有办法将此显着性蒙版放在下面的图像上以获得突出显示显着区域的输出图像?
我尝试将图像拆分为 3 个通道并将每个通道乘以地图,然后将它们堆叠在一起,但这并没有显示出工作。我试过的代码是:
(B, G, R) = cv2.split(resized)
y = saliencyMap
# cv2.imshow("Blue", B)
# cv2.imshow("Green", G)
# cv2.imshow("Red", R)
# cv2.waitKey(0)
B = B * y.astype(y.dtype)
G = G * y.astype(y.dtype)
R = R * y.astype(y.dtype)
img = cv2.merge((B,G,R))
cv2.imshow("Image", img)
cv2.waitKey(0)
但是,我获得的输出图像是:
这显然是错误的。任何提示或建议?
解决方案
推荐阅读
- php - Livewire - 每次请求时都会增加时间
- javascript - got a random file names imgres.html
- c# - websocketsharp opens multiple concurrent connections in same client
- javascript - Javascript 的引擎设计在更坏的情况下如何影响用户数据结构的实现?
- javascript - FabricJS automatically adding new lines to textboxes causes text cursor to move backwards
- postgresql - Postgresql database size is lower after restore
- javascript - 如何声明地图
哪个 T 应该是可变参数类而 K 应该是 T 的一个实例? - python - Telethon event handler stuck looping
- javascript - Trying to link tabs from main menu
- python - Beautifulsoup unable to get data from mds-data-table from morningstar