hỏi vê cách lưu ảnh vào code xử lý ảnh dùng visual studio 2013

vmtri

Học sinh phổ thông
#1
các bác cho em hỏi tí ạ,em đang làm đồ án liên quan đến xử lý ảnh dùng opencv trên visual studio2013 viết code trên nền c++,em viết được đoạn code này built k có lỗi,nhưng lại không biêt cách add đường dẫn vào cho nó trích suất dữ liệu từ ảnh đã lưu sẵn trong folder rồi ạ,mong các bác và addmin giúp e với
đoạn code đây ạ:
#include <iostream>
#include <fstream>
#include "cv.h"
#include "highgui.h"
//#include "cl_Texture.h"

using namespace std;

std::string IntToString(int i)
{
char* buffer = new char[100];
sprintf(buffer, "E:/output/image%d.jpg", i); em đã thử lưu như vậy nhưng k hiện lên gì hết
string s = string(buffer);
delete[] buffer;
return s;
}

int main(int argc, char** argv)
{

IplImage* pImg;

IplImage* gray;

string imagePath;

int count_steps = 4;


const int StepDirections[] = { 0, 1, -1, 1, -1, 0, -1, -1 };


cl_Texture* texture = new cl_Texture();
cl_Texture::GLCM* glcm;

double d0, d1, d2, d3;
// store the features in this array
double * features = new double[4 * count_steps];

// to change the ROI
int x = 0, y = 0;


ofstream myfile("glcm.txt", ios::out | ios::app);
if (!myfile.is_open())
cout << "Unable to open file";



imagePath = "E:/output/GPdata.jpg";

pImg = cvLoadImage(imagePath.c_str(), 1);
if (pImg == 0)
{
cout << "Error!!" << endl;
return -1;
}

// convert it to gray image
gray = cvCreateImage(cvSize(pImg->width, pImg->height), pImg->depth, 1);

cvCvtColor(pImg, gray, CV_RGB2GRAY);

// set the ROI in the image
cvSetImageROI(gray, cvRect(86 + x, 75 + y, 75, 62));

// buid the GLCM
glcm = texture->CreateGLCM(gray, 1, StepDirections, count_steps, CV_GLCM_OPTIMIZATION_LUT);
// get the features from GLCM
texture->CreateGLCMDescriptors(glcm, CV_GLCMDESC_OPTIMIZATION_ALLOWDOUBLENEST);

/***************************************************************
***************** Use the features of GLCM ********************
****************************************************************
*/

for (int i = 0; i<count_steps; i++)
{

d0 = texture->GetGLCMDescriptor(glcm, i, CV_GLCMDESC_ENTROPY);
features[i*count_steps] = d0;

d1 = texture->GetGLCMDescriptor(glcm, i, CV_GLCMDESC_ENERGY);
features[i*count_steps + 1] = d1;

d2 = texture->GetGLCMDescriptor(glcm, i, CV_GLCMDESC_HOMOGENITY);
features[i*count_steps + 2] = d2;

d3 = texture->GetGLCMDescriptor(glcm, i, CV_GLCMDESC_CONTRAST);
features[i*count_steps + 3] = d3;

myfile << d0 << ' ' << d1 << ' ' << d2 << ' ' << d3 << ' ';
}

cout << endl;
myfile << "\n";

cvResetImageROI(gray); // cancel the ROI in the image


myfile.close();
cvReleaseImage(&pImg);
cvReleaseImage(&gray);

delete[] features;

return 0;
}
 

study Le

Học sinh phổ thông
#2
trong chương trình của bạn có đoaạn nào bạn gọi hàm IntToString đâu? thì sao có ảnh output được? ngay cả khi bạn gọi hàm này thì nó cũng hok lưu ảnh được. Vì hok có dữ liệu ảnh nào được truyền vào hàm
 

Quảng cáo Google