发现了一个很棒的git,mark一下
https://github.com/android-nuc/StudyPath/blob/master/README.md
找到了一本书《opencv算法精解基于python和C++》
图书馆没有啦不过下载了电子版
对算法进行了解析并且通过python和c++两种语言实现
感觉挺棒的 学习一下试试看
看毛星云那本可以等看完这个再看
// ex2c++.cpp : 定义控制台应用程序的入口点。
//
#include “stdafx.h”
#include<opencv2/core/core.hpp>
#include
using namespace cv;
int main()
{
//两种定义Mat的方式
Mat m = Mat(Size(2, 3), CV_32FC(1));
Mat n = (Mat_(2, 3) << 1, 2, 3, 4, 5, 6);
std::cout <<"利用Size"<<"\n"<< m<<"\n";
std::cout <<"\n"<<"利用Mat_<int>"<<"\n"<< n<<"\n";
std::cout <<"\n"<< "行" << n.rows;
Size size = m.size();//获取尺寸
std::cout <<"\n"<< "尺寸" << size;
std::cout << "\n" << "利用at/Point获取矩阵数值" << std::endl;
for (int r = 0; r < n.rows; r++)
{
for (int c = 0; c < n.cols; c++)
{
std::cout << n.at<int>(r, c) << ",";//用at时注意只能对n处理,m未规定数字,且rc不要过界否则报内存错误
std::cout << n.at<int>(Point(c, r)) << ",";//用Point时c在前r在后
}
}
std::cout << "\n"<<"利用指针获取矩阵数值" << std::endl;
for (int r = 0; r < n.rows; r++)
{
//获取矩阵n第r行首地址
const int* ptr = n.ptr<int>(r);
for (int c = 0; c < n.cols; c++)
{
std::cout << ptr[c] << "\t";
}
std::cout << std::endl;
}
if (n.isContinuous())//这里不要忘记()获取连续地址内存
{
int *