为什么我的 cv2.findContours 函数有这个问题?
发布于2022-01-28 03:21
阅读(586)
评论(0)
点赞(12)
收藏(4)
回溯(最近一次调用最后):文件“C:/Users/michail.gakas/Desktop/python scripts/counters.1py.py”,第 10 行,imgray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 错误:C :\builds\master_PackSlaveAddon-win64-vc12-static\opencv\modules\imgproc\src\color.cpp:7456: 错误:(-215) scn == 3 || 函数 cv::ipp_cvtColor 中的 scn == 4
我的代码:
import numpy as np
import cv2
img = cv2.imread('star.jpg',0)
imgray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(imgray,127,255,0)
im2, contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
我正在使用 python 2.7 CV3,但我之前安装了 CV2
解决方案
我现在没有 OpenCV,但从我看到你所做的
img = cv2.imread("star.jpg", 0)
但您可能想要做的是以颜色打开它:
img = cv2.imread("star.jpg", 1)
或将其“不变”打开为:
img = cv2.imread("star.jpg", -1)
您所做的是以灰度模式打开图像,然后尝试将其转换为灰度。该错误实际上表明assert
没有找到具有 3 或 4 个通道的图像,并且BGR2GRAYSCALE
从彩色 jpg 图像(3 个通道)或彩色 png 图像(4 个通道,有时 1 个用于 alpha)变为 1 个通道灰度图像。Alpha 通道在此函数中被丢弃。请让您的生活更轻松,并使用 cv2 提供的官方标志来提高代码的可读性。
cv2.IMREAD_UNCHANGED (<0) loads the image as is (including the alpha channel if present)
cv2.IMREAD_GRAYSCALE ( 0) loads the image as an intensity one
cv2.IMREAD_COLOR (>0) loads the image in the RGB format
站长简介:高级工程师,爱好交友,无偿辅导python和前端,技术交流,面试指导,找工作指导,瞎聊都可加我微信i88811i哈,欢迎欢迎!也欢迎加入程序员交流群,专属程序员的圈子,加我微信拉你进群
欢迎关注我的公众号:程序员总部,关注公众号回复python,免费领取 全套python视频教程,关注公众号回复充值+你的账号,免费为您充值1000积分
所属网站分类:
技术文章 >
问答