python – 为什么cv2扩展实际上不会影响我的图像?
发布时间:2020-12-16 23:35:56 所属栏目:Python 来源:网络整理
导读:因此,我使用 python和opencv2生成二进制(很好,真正的灰度,8位,用作二进制)图像,向图像写入少量多边形,然后使用内核扩展图像.但是,无论我使用什么内核,我的源和目标映像总是一样.有什么想法吗? from matplotlib import pyplotimport numpy as npimport cv2bi
因此,我使用
python和opencv2生成二进制(很好,真正的灰度,8位,用作二进制)图像,向图像写入少量多边形,然后使用内核扩展图像.但是,无论我使用什么内核,我的源和目标映像总是一样.有什么想法吗?
from matplotlib import pyplot import numpy as np import cv2 binary_image = np.zeros(image.shape,dtype='int8') for rect in list_of_rectangles: cv2.fillConvexPoly(binary_image,np.array(rect),255) kernel = np.ones((11,11),'int') dilated = cv2.dilate(binary_image,kernel) if np.array_equal(dilated,binary_image): print("EPIC FAIL!!") else: print("eureka!!") 我得到的只是EPIC FAIL! 谢谢! 解决方法
因此,事实证明问题在于内核和图像的创建.我相信openCV期望’uint8’作为内核和图像的数据类型.在这种特殊情况下,我用dtype =’int’创建了内核,默认为’int64′.另外,我创建的图像为’int8′,而不是’uint8′.不知何故,这并未引发异常,但导致扩张以令人惊讶的方式失败.
将上面两行改为 binary_image = np.zeros(image.shape,dtype='uint8') kernel = np.ones((11,'uint8') 解决了这个问题,现在我得到了EUREKA!万岁! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 利用PyInstaller将python程序.py转为.exe的方法详解
- Python Tkinter实现简易计算器功能
- python – Pandas根据行中其他单元格的值为单元格赋值
- 使用BS4或Selenium从finishline.com进行Web抓取
- python – numpy.mod()和numpy.remainder()之间有什么区别?
- 从python登录到MongoDB
- day17:内置方法&math模块&random模块&pickle模
- 使用Selenium模拟浏览器行为!室友原来天天都在浏览这些网站
- Python – 组合两个json对象
- python – 扩展列表中的元素