@[TOC](嵌入式程序调试与opencv图像库)
一. 在Ubuntu系统上练习程序代码的GDB调试。
安装GDB
GDB调试
代码
#include <stdio.h>
void ShowRevertNum(int iNum)
{
while (iNum > 10)
{
printf("%d", iNum % 10);
iNum = iNum / 10;
}
printf("%d\n", iNum);
}
int main(void)
{
int iNum;
printf("Please input a number :");
scanf("%d", &iNum);
printf("After revert : ");
ShowRevertNum(iNum);
}
调试
输入l查看代码
二. 安装opencv-3.4.1
(一)安装
1.解压
unzip opencv-3.4.1.zip
2.进入公文包
cd opencv-3.4.1
3.安装依赖库cmake
sudo apt install amake
4.opencv配置
(1)创建编译文件夹
mkdir my_build_dir
(2)文件夹配置
cd my_build_dir
5.配置opencv环境
(1)添加路径
sudo gedit /etc/ld.so.conf.d/opencv.conf
(2)弹出的窗口中输入以下命令
sudo gedit /etc/ld.so.conf.d/opencv.conf
(3)执行命令
sudo ldconfig
(4)配置bash
sudo gedit /etc/bash.bashrc
(5)弹出的窗口中输入以下命令后就完成配置
source /etc/bash.bashrc
sudo updatedb
三. 图像处理
1.创建文件
touch test.cpp
2.编辑
sudo gedit /test.cpp
代码如下
#include <opencv2/highgui.hpp>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
CvPoint center;
double scale = -3;
IplImage* image = cvLoadImage("dog.JPG");//切记图片命名要与程序中的命名相同包括大小写
argc == 2? cvLoadImage(argv[1]) : 0;
cvShowImage("Image", image);
if (!image) return -1; center = cvPoint(image->width / 2, image->height / 2);
for (int i = 0;i<image->height;i++)
for (int j = 0;j<image->width;j++) {
double dx = (double)(j - center.x) / center.x;
double dy = (double)(i - center.y) / center.y;
double weight = exp((dx*dx + dy*dy)*scale);
uchar* ptr = &CV_IMAGE_ELEM(image, uchar, i, j * 3);
ptr[0] = cvRound(ptr[0] * weight);
ptr[1] = cvRound(ptr[1] * weight);
ptr[2] = cvRound(ptr[2] * weight);
}
Mat src;Mat dst;
src = cvarrToMat(image);
cv::imwrite("test.png", src);
cvNamedWindow("test",1); imshow("test", src);
cvWaitKey();
return 0;
}
处理前
处理后