C#调用vc++ dll 传递参数的问题(Bitmap 转换为 opencv mat ),保存后图片不一样。
1个回答
展开全部
每一行最后有padding的缘运袜故。
每一行的第一个像素的第一个字节是对齐在4字节边界上的(如果无法理解这一句,你就理解为每一行第一个像素旁拿激的第一个字节的地址可以被4整除)
opencv如果没有这么做,把padding也当作有效数据,那么就敏销会偏
每一行的第一个像素的第一个字节是对齐在4字节边界上的(如果无法理解这一句,你就理解为每一行第一个像素旁拿激的第一个字节的地址可以被4整除)
opencv如果没有这么做,把padding也当作有效数据,那么就敏销会偏
追问
谢谢您,能帮我看看怎么改吗?
追答
Bitmap对象Lock以后,除了scan0应该还会给你一个stride,这就是每一行所占的字节数(包括最后的padding)
opencv那边我可以算是没玩过,只有知道opencv那边到底数据是怎么要求的(比如有没有padding啊如何padding之类)才有办法从bitmap构建符合它要求的数据
你找找opencv那边每一条扫描线占用的字节数怎么计算吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询