我使用 findNonZero(img,nonZeroCoordinates)将所有非零点存储在 nonZeroCoordinates 中,这是 Mat
现在我想将所有这些点存储在 vector 中,以便进一步处理。我的问题是" 是否有可能以简单的方式将所有积分存储在垫子中?"
据我所知,我可以遍历 nonZeroCoordinates 并将所有点一个一个地存储在向量中。
# if in development, just send the json to check
if Rails.env.development?
send_data json.to_json, :filename => 'account_statement.json', :type => 'application/json', :disposition => 'attachment'
else
begin
send_data generate_report(json.to_json), :filename => 'account_statement.pdf', :type => 'application/pdf', :disposition => 'attachment'
rescue => e
raise 'Report server is not available, Please try again later'
end
end
如您所见,代码看起来非常冗余。是否可以使其更简单?
答案 0 :(得分:0)
OpenCV的findNonZero功能除了点矢量外,还可以作为输出参数。 您可以将其直接存储在向量中,而不是将结果存储在Mat对象中,如下所示:
vector<Point> inds;
cv::findNonZero(inputMatrix, inds);