30/09/2018, 21:03
Thắc mắc về một số phép cơ bản trong C++
chào mọi người, mình có một vấn đề mà chưa giai quyết được
mình có 1 vector ma trận, mình muốn nhân từng phần tử trong đó với một ma trận Q khác, đây là code mình
vector <Mat_<float>> vectorContruct(4096,Mat(8,8,CV_32FC1);
vector <Mat_<float>> vectorContruct(4096,Mat(8,8,CV_32FC1;
for (int i = 0; i < vectorContruct.size(); ++i)
{
Mat temp(8,8,CV_32FC1);
for (int k = 0; k < 8; ++k)
{
for (int l = 0; l < 8; ++l)
{
float a = vectorContruct[i].at<float>(k,l) * Q.at<float>(k,l);
temp.at<float>(k,l) = a;
}
}
cout << "M = " << endl << " " << temp << endl << endl;
for (int m = 0; m < 8; ++m)
{
for (int n = 0; n < 8; ++n)
{
vectordequantum[i].at<float>(m,n)=temp.at<float>(m,n);
}
}
}```
bằng cách như vậy, mình chỉ thu đc 1 kết qủa duy nhất cho tất cả các Mat trong vector
`Mat dequantum =
[-330, -66, -20, -9, 0, 0, 0, 0;
-84, -18, 0, 0, 0, 0, 0, 0;
-6, 0, 15, 0, 24, 0, 0, 0;
-6, 0, 0, 0, 0, 0, 0, 0;
-8, 0, 0, 0, 0, 0, 0, 0;
0, 0, 0, 0, 0, 0, 0, 0;
0, 0, 0, 0, 0, 0, 0, 0;
0, 0, 0, 0, 0, 0, 0, 0]`
Mong mọi người chỉ giaos cho mình, mình cũng thử với push_back mà vấn thế
Bài liên quan