openCV警告组件数据类型不匹配
openCV warning component data type mismatch
我在Cent OS机器上使用OpenCV 2.4.4。我的代码目前加载一个带有警告的图像:组件数据类型不匹配
下面是代码:#include <cv.h>
#include <highgui.h>
#include "imglib.h"
int main( int argc, char** argv )
{
Mat image = imread( argv[1], CV_LOAD_IMAGE_ANYDEPTH);
imwrite("debugwriteout.jp2", image);
}
我在参数中传递了.jp2灰度文件的名称。图像有一个14位的像素深度,但是当我打印出像素值时,我得到的值超过20000,我的图像现在是一个完全黑色的正方形。如有任何建议,不胜感激。
附加信息:当我将imread标志更改为CV_LOAD_IMAGE_GRAYSCALE时,它成功地将图像转换为8位像素深度并打印有用的输出,因此我可以告诉jasper模块至少在某种程度上正确工作。
任何建议都将不胜感激,
谢谢
SZman,
我解决了我的问题。解决方案是高位位的位置。在16位上,对于14位深度,你有xxxxxxxxxxxxxx00而不是00xxxxxxxxxxxxxx。如果你想要正确的值,你必须在右边贴花2位请使用这些标志阅读图像
Mat image = imread( argv[1], CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);
相关文章:
- 与'operator='不匹配(操作数类型'String'且"void")
- 错误:'operator>'不匹配(操作数类型为 'Student' 和 'Student'
- 与"运算符>>"不匹配(操作数类型为"QDataStream"和"QJsonObject")
- 与'operator<<'不匹配(操作数类型'std::ostream {aka std::basic_ostream<char>}'
- 与"operator<<"不匹配(操作数类型'std::ostream'
- 类不命名数据类型?
- C++ 重载:[错误] 与'operator='不匹配(操作数类型为 'String' 和"字符串")
- 错误:与"运算符>>"不匹配(操作数类型为"std::istream
- 与"运算符[]"不匹配(操作数类型为"std::unique_ptr<std::vector<int> >"和"int")
- 错误:与'operator='不匹配(操作数类型为 'PlDrustvo' 和"PlDrustvo")|
- 错误:与'operator='不匹配(操作数类型为"std::map<int、double>::iterator
- \main.cpp|103|error: 与"operator<<"不匹配(操作数类型为"std::ostream {aka std::basic_ostream<char&g
- 错误:与"运算符[]"不匹配(操作数类型为"QVector<int>"和"QCharRef")
- 有没有办法修复此错误:与'operator[]'不匹配(操作数类型为 'empl' 和"int")
- 错误与'operator='不匹配(操作数类型为 'Person' 和"Person*")
- 我如何实现递归函数的模板,该模板允许C 中的许多不确定数据类型的参数
- 运算符重载时出错(错误:"运算符<<不匹配(操作数类型为"std::basic_ostream<char>"和"const char [2]")
- 如何使用分支逻辑构造不可变数据类型的实例
- 与"运算符[]"不匹配(操作数类型为"Briques"和"int")
- 在不更改数据类型的情况下可逆地组合两个uint32_t