鱼C论坛

 找回密码
 立即注册
查看: 2125|回复: 15

cv2.imread()该怎么用(第一次发帖,有表达不到位的地方请多多包涵)

[复制链接]
发表于 2018-9-18 10:29:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

def change_size(read_file):
    image=cv2.imread(read_file,1) #读取图片

以上是程序里面的一段代码,我在网上看到的cv2.imread() 的用法括号中逗号前面应该是要读入图片的完整路径,我尝试把这段代码中的read_file改成图片的保存路径后就会报错:
OpenCV Error: Assertion failed (scn == 3 || scn == 4) in cv::cvtColor, file C:\projects\opencv-python\opencv\modules\imgproc\src\color.cpp, line 11111
Traceback (most recent call last):
  File "D:/py黑边/黑边.py", line 53, in <module>
    x=change_size(source_path + file_names[i])        #得到文件名
  File "D:/py黑边/黑边.py", line 14, in change_size
    binary_image=cv2.cvtColor(binary_image,cv2.COLOR_BGR2GRAY)
cv2.error: C:\projects\opencv-python\opencv\modules\imgproc\src\color.cpp:11111: error: (-215) scn == 3 || scn == 4 in function cv::cvtColor
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-18 12:07:05 From FishC Mobile | 显示全部楼层
不像是路径的问题,第二个参数有改到吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-18 12:32:36 | 显示全部楼层
就是绝对路径或相对路径啊,你只运行cv.imread()这一句试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-18 15:55:31 | 显示全部楼层
claws0n 发表于 2018-9-18 12:07
不像是路径的问题,第二个参数有改到吗?

第二个参数是文件名
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-18 16:06:24 | 显示全部楼层
幽梦三影 发表于 2018-9-18 12:32
就是绝对路径或相对路径啊,你只运行cv.imread()这一句试试

好像跟那个没关系,我在网上看到的cv2.imread()里面应该是路径和文件名,可是这个代码里面就是read_file,后面那个是文件名,我试着把前面改成路径就错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-18 16:10:25 From FishC Mobile | 显示全部楼层
秋刀鱼哟 发表于 2018-9-18 15:55
第二个参数是文件名

第二个参数是颜色,红绿蓝,路径就包括文件名和档案类型的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-18 16:25:02 | 显示全部楼层
claws0n 发表于 2018-9-18 16:10
第二个参数是颜色,红绿蓝,路径就包括文件名和档案类型的

这……括号里面那个1确实是文件名呃……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-18 21:01:07 | 显示全部楼层
我写过这个东西


import cv2
import numpy

img = cv2.imread('zhudaxing.jpg')

cv2.imshow('img', img)

img2 = cv2.bilateralFilter(img, 0, 50, 10)
cv2.imshow('new_img', img2)

img3 = cv2.pyrMeanShiftFiltering(img, 1, 30)
cv2.imshow('img3', img3)

cv2.waitKey(0)
cv2.destroyAllWindows()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-19 08:47:07 | 显示全部楼层

看不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-19 09:36:31 | 显示全部楼层
imread,如果你路径确定没问题的话,就是cvtColor转换问题
你用的是 BG2BGR(2通道BG转3通道BGR),error提示你的图像的颜色通道为3或4通道,而你使用的参数为2通道或更低来进行转换,就会出错。
(网上扒的)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-19 09:47:54 | 显示全部楼层
imread()第二个参数是1的时候是读入彩色图片

IMREAD_COLOR = 1
你转换成灰度了,就会出错了吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-19 10:00:48 From FishC Mobile | 显示全部楼层
秋刀鱼哟 发表于 2018-9-19 08:47
看不懂


你是想学opencv可以找教程,b站上就有
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-19 10:01:50 | 显示全部楼层
塔利班 发表于 2018-9-19 09:36
imread,如果你路径确定没问题的话,就是cvtColor转换问题
你用的是 BG2BGR(2通道BG转3通道BGR),error ...

def change_size(read_file):
    image=cv2.imread(read_file,1) #读取图片 image_name应该是变量

    b=cv2.threshold(image,15,255,cv2.THRESH_BINARY)          #调整裁剪效果
    binary_image=b[1]               #二值图--具有三通道
    binary_image=cv2.cvtColor(binary_image,cv2.COLOR_BGR2GRAY)
    print(binary_image.shape)       #改为单通道
接下来的代码是这样的……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-19 10:03:03 | 显示全部楼层
幽梦三影 发表于 2018-9-19 10:00
你是想学opencv可以找教程,b站上就有

好的,谢谢了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-19 10:05:49 | 显示全部楼层
具体就不知道了,也是还没用过,
如果你确认图片格式没问题,
那可能就是没保存就去读取的问题,
百度搜索了有这样的案例。
你多了解些cv2的代码,应该就会知道问题出在哪里了,
我这每一句都没用过
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-19 10:10:46 | 显示全部楼层
塔利班 发表于 2018-9-19 10:05
具体就不知道了,也是还没用过,
如果你确认图片格式没问题,
那可能就是没保存就去读取的问题,

好的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 14:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表