ADO (C++)를 사용하여 MS-SQL 데이터베이스에서 이미지를 읽지 않습니다. 이미지는 데이터베이스에 varBinary (max)로 저장됩니다. 이미지를 가져 와서 cv::Mat
형식으로 변환하려고했습니다. 2 오버로드의 아무도는 모든 인수를 변환 할 수 없었다 : 여기 C++ 및 Ado를 사용하여 cv :: Mat 형식으로 데이터베이스에서 이미지 데이터 가져 오기
HRESULT hr = ::CoInitialize(NULL);
ADODB::_ConnectionPtr pConnection;
hr = pConnection.CreateInstance(__uuidof(ADODB::Connection));
pConnection->CursorLocation = ADODB::adUseClient;
hr=pConnection->Open(L"Provider=sqloledb;Data Source=SAMPLE-DB;"
L"Initial Catalog=IMAGE;User Id=sr;Password=****;", L"",
L"", ADODB::adConnectUnspecified);
if (FAILED(hr))
{
//error handling...
}
ADODB::_RecordsetPtr recordset;
hr = recordset.CreateInstance(__uuidof(ADODB::Recordset));
std::string cmd = "SQL COMMAND THAT PROVIDE IMAGE BINARY";
recordset->Open(cmd.c_str(), pConnection.GetInterfacePtr(),
ADODB::adOpenForwardOnly, ADODB::adLockReadOnly, ADODB::adCmdText);
std::vector<uchar> buffer;
buffer = recordset->Fields->GetItem(L"ImgBinary")->GetValue(); //problem!!
cv::Mat testImage = cv::imdecode(buffer,cv::IMREAD_COLOR); //problem!!
cv::namedWindow("MyWindow");
cv::imshow("MyWindow",testImage);
오류,
1) 'CV : imdecode'입니다 유형
2) IntelliSense : "_variant_t"에서 "std :: vector>"로 사용자 정의 변환이 적절하지 않음
도와 주시겠습니까? 어떻게하면 cv::Mat
형식으로 이미지를 얻을 수 있습니까?
감사의 말