python - 如何在 Python 中拼凑边缘检测结果和原始图片
问题描述
我正在尝试使用Canny
.
然后,我想反转检测到的边缘的颜色(白色背景上的黑色边缘)。
最后,我需要将原始图片和边缘合成为一张图片。
这是我的代码:
import cv2
import numpy as np
picture = cv2.imread("picture.jpg")
gray = cv2.cvtColor(picture,cv2.COLOR_BGR2GRAY)
edge = cv2.Canny(gray,100,250,3)
(thresh, blackEdges) = cv2.threshold(edge, 0, 255, cv2.THRESH_BINARY_INV)
result = blackEdges + gray # I tryed this and ,i didn't get what i want.
cv2.imshow("Result",result)
cv2.waitKey(0)
cv2.destroyAllWindows()
解决方案
将结果行替换为
result = picture.copy()
result[blackEdges==0] = (0,0,0)
这将使您的图片在边缘图像为黑色的地方变黑。您可以将 (0,0,0) 替换为 (0,0,255) 以使它们显示为红色。对于任何其他颜色也是如此。
如果你想要灰色图像上的边缘,那么做
result = gray.copy()
result[blackEdges==0] = (0,0,0)
推荐阅读
- reactjs - 我可以在前端应用程序启动(单独部署)时“唤醒”Heroku 服务器吗?
- google-chrome - 带有数字的 Chrome 控制台反斜杠
- flutter - shrinkWrap 在 ListView.builder 中做了什么?
- flutter - mvc 架构可以使用提供程序吗?
- python - 在 UI 元素中保留对源数据的引用
- architecture - 我是否需要 Saga 来确保始终处理消息?
- rust - 从字符串的随机 Vec 读取文件
- c++ - 用于 !函数调用之前的运算符
- ios - 使用新的 NSKeyedUnarchiver API 取消归档数据,但未能满足所需的 unarchivedObjectOfClass
- scala - 没有可用于 akka.actor.typed.ActorRef[org.knoldus.eventSourcing.UserState.Confirmation] 的 play.api.libs.json.Format 实例