opencv菜鸟一枚,若有理解不对的地方请多多指教
#include<opencv2/opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
Mat src, dst;
src = imread("F:/项目学习/车辆识别/opencv3.1教程/代码/lena.jpg");
namedWindow("原图", CV_WINDOW_AUTOSIZE);
imshow("原图", src);
cvtColor(src, dst, CV_BGR2GRAY);
namedWindow("灰度图", CV_WINDOW_AUTOSIZE);
imshow("灰度图", dst);
//原图画线
for(int i = 0;i<src.rows;i++)
for (int j = 0; j < src.cols; j++) {
uchar* p = src.ptr<uchar>(i, j);
//原图是彩色图,操作三个通道修改颜色
if (i == j) {
p[0] = 0;
p[1] = 255;
p[2] = 255;
}
}
namedWindow("原图画线", CV_WINDOW_AUTOSIZE);
imshow("原图画线", src);
//灰度图画线
for (int i = 0; i < dst.rows; i++)
for (int j = 0; j < dst.cols; j++) {
uchar* p = dst.ptr<uchar>(i, j);
//灰度图是单通道的,只需要操作一个通道即可
if (i == j) {
p[0] = 255;
}
}
namedWindow("灰度图画线", CV_WINDOW_AUTOSIZE);
imshow("灰度图画线", dst);
waitKey(0);
return 0;
}
参考链接:https://blog.csdn.net/kksc1099054857/article/details/82684678