1.编辑生成hello.c、hello.h、main,c文件
右击桌面–在终端打开输入命令mkdir mkdirtest1创建一个文件夹,然后再输入vi main.c还有vi hello,c和vi hello.h创建三个源程序
在main.c文件写入以下代码
hello.h写入以下代码
hello.c写入以下代码
#includevoid hello(const char *name) { printf("Hello%s!n",name); }
2.将hello.c编译成hello.o文件
输入gcc -c hello.c命令将hello.c文件编译成.o文件,再输入ls命令查看是否编译
编译成功会显示如上四个文件
3.由.o文件创建静态库
输入ar -crv libmyhello.a hello.o命令创建一个库名位myhello的静态库,再输入ls命令查看是否创建成功。
4.使用静态库
输入命令gcc main,c libmyhello.a -o hello
5.由.o文件创建动态库文件
输入gcc -shared -fPIC -o libmyhello.so hello.o命令
6.程序中使用动态库
输入gcc -o hello main.c -L. -lmyhello命令
6.程序中使用动态库
输入命令gcc -o hello main.c -L. -lmyhello
1.创建一个文件夹
输入mkdir test2–cd test2创建一个test2文件夹打开该文件,在该文件创建A1.c,A2.c,A.h,test.c文件
2.静态库.a文件生成与使用
3.共享库.so文件的生成与使用
main.c代码
sub.h代码
sub1.c代码
sub2.c代码
静态库
动态库
图片
https://blog.csdn.net/ssj925319/article/details/109231145根据该过程安装配置好opencv
另创一个文件夹code,在文件夹创建一个test1.cpp
在该cpp文件中写入如下代码
#include#include using namespace cv; using namespace std; int main(int argc, char** argv) { CvPoint center; double scale = -3; IplImage* image = cvLoadImage("lena.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 height;i++) for (int j = 0;j 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; }
输入如下指令
在code文件夹下准备一张图片
输入.test1命令
可以看到图片阴影效果
视频
先win+r,然后输入services.msc,使虚拟机获取摄像头权限
找到蓝色那一栏,确保全权限启动了
点击vm左上角的虚拟机–设置–usb选项,将usb兼容性改为3.0
接着
vm右下角指的这个有绿点,说明连接成功。
新建一个test2.cpp,输入以下代码
#includeusing namespace cv; int main() { //从摄像头读取视频 VideoCapture capture("man.mp4"); //循环显示每一帧 while(1){ Mat frame;//定义一个Mat变量,用于存储每一帧的图像 capture >> frame;//读取当前帧 if(frame.empty())//播放完毕,退出 break; imshow("读取视频帧",frame);//显示当前帧 waitKey(30);//掩饰30ms } system("pause"); return 0; }
自己准备一个视频,视频名称与格式必须与代码第六行匹配
输入以下命令
这样就能播放视频了。
录制视频
同理,创建一个test3.cpp,编译,运行
这样录制视频也完成了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)