opencv中为什么保存的图片和显示的图片不同? 10

例如以下代码:Mato1=imread("../py/lib2_o1.jpg");Mato1_g2=imread("../py/lib2_o1_g2.jpg");Matp... 例如以下代码:Mat o1=imread("../py/lib2_o1.jpg");Mat o1_g2=imread("../py/lib2_o1_g2.jpg");Mat pyDoG;subtract(o1,o1_g2,pyDoG, noArray(),CV_8SC1 ); imshow("Dog1", pyDoG);imwrite("../py/py_o1_0s2.jpg",pyDoG);但是imshow()显示的图片(左图)和保存的图片py_o1_0s2.jpg(右图)不一样? 展开
 我来答
房子a房子a
2017-05-10 · TA获得超过2047个赞
知道小有建树答主
回答量:783
采纳率:85%
帮助的人:562万
展开全部
应该是图像的深度不同一造成,先看一下你的代码中各个环节是否统一了图像的深度CV_8SC1,也有可能是系统的看图软件对8bit深度的图像显示的有问题。
7seven21
2018-08-11
知道答主
回答量:1
采纳率:0%
帮助的人:838
展开全部
openCV中,在使用imwrite()保存图片时,会自动将各种格式的数据转换成符合规矩的uint8数据类型的数据,再保存。而使用imshow()显示图像的时候,并没有这一个操作。从你给的图里可以很容易的看出,左边的图不是一个灰度图像。因为数据类型不是uint8,所以openCV将其当做一个二值图像来处理。而右边的图像数据是一个显示正确的灰度图像。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式