嵌入式学习小组
登录
直播中
张丽
8年用户
1581经验值
私信
关注
如何编写一个打开图片进行特效显示?
开启该帖子的消息推送
如何
在ubuntu下使用GDB调试?
如何编写一个打开图片进行特效显示?
回帖
(1)
王岩
2021-12-24 16:50:47
在ubuntu下使用GDB调试
下面的代码实现对一个整型数的反转功能,比如输入123,则
输出321。 但输入100时,程序的输出结果却不正确,请找出问题。
#include
void ShowRevertNum(int iNum){ while(iNum>10) { printf("%d",iNum % 10); iNum = iNum /10; } printf("%dn",iNum);}int main(void){ int iNum; printf("Please input a number:"); scanf("%d",&iNum); printf("After revert:"); ShowRevertNum(iNum);} 编译运行
gdb test1 对目标文件进行gdb调试
编写一个打开图片进行特效显示的代码
放一张图片在home路径下
创建一个文件夹,并在文件夹内创建"test1.cpp"文件,文件中写入代码
#include
void ShowRevertNum(int iNum)
{
while (iNum > 10)
{
printf("%d", iNum % 10);
iNum = iNum / 10;
}
printf("%dn", iNum);
}
int main(void)
{
int iNum;
printf("Please input a number :");
scanf("%d", &iNum);
printf("After revert : ");
ShowRevertNum(iNum);
}
编译并运行
原图与运行后的图片
原图
经过处理后的图片
练习使用opencv库编写打开摄像头压缩视频的程序
一个打开摄像头显示处理视频的程序代码
#include
#include
using namespace cv;
int main()
{
//像素操作
Mat src,dst;
src = imread("/home/helloworld/lena.jpeg");
if(src.empty())
{
printf("can not load image n");
return 0;
}
namedWindow("input");//创建窗口
imshow("input",src);//显示图片
cvtColor(src, dst, COLOR_BGR2GRAY);//将图片转为灰度图
namedWindow("output");
imshow("output",dst);
waitKey();
return 0;
}
gcc test1.cpp -o test1 `pkg-config --cflags --libs opencv`
在第七行代码中
VideoCapture capture(0); videocapture属于videoio子模块程序运行的时候会检查是否为空,如果为空(可以用0代替)默认打开摄像头,如果是路径则默认打开视频源。
Mat是一个类。由两部分数据组成:矩阵头(包括矩阵尺寸、存储方法、存储地址等信息)和一个指向所有像素值的矩阵(根据所选存储方法不同,矩阵可以是不同的维数)的指针。
waitKey延时越长 fps越小 出现跳帧 摄像头显示变卡,故要有一定的延时。
示例代码会在while循环中一直运行,你如果试图用鼠标关闭图像显示窗口,会发现始终关不掉。需要用键盘Ctrl+C 强制中断程序,非常不友好。可以在"while"中加入一个"break"
在ubuntu下使用GDB调试
下面的代码实现对一个整型数的反转功能,比如输入123,则
输出321。 但输入100时,程序的输出结果却不正确,请找出问题。
#include
void ShowRevertNum(int iNum){ while(iNum>10) { printf("%d",iNum % 10); iNum = iNum /10; } printf("%dn",iNum);}int main(void){ int iNum; printf("Please input a number:"); scanf("%d",&iNum); printf("After revert:"); ShowRevertNum(iNum);} 编译运行
gdb test1 对目标文件进行gdb调试
编写一个打开图片进行特效显示的代码
放一张图片在home路径下
创建一个文件夹,并在文件夹内创建"test1.cpp"文件,文件中写入代码
#include
void ShowRevertNum(int iNum)
{
while (iNum > 10)
{
printf("%d", iNum % 10);
iNum = iNum / 10;
}
printf("%dn", iNum);
}
int main(void)
{
int iNum;
printf("Please input a number :");
scanf("%d", &iNum);
printf("After revert : ");
ShowRevertNum(iNum);
}
编译并运行
原图与运行后的图片
原图
经过处理后的图片
练习使用opencv库编写打开摄像头压缩视频的程序
一个打开摄像头显示处理视频的程序代码
#include
#include
using namespace cv;
int main()
{
//像素操作
Mat src,dst;
src = imread("/home/helloworld/lena.jpeg");
if(src.empty())
{
printf("can not load image n");
return 0;
}
namedWindow("input");//创建窗口
imshow("input",src);//显示图片
cvtColor(src, dst, COLOR_BGR2GRAY);//将图片转为灰度图
namedWindow("output");
imshow("output",dst);
waitKey();
return 0;
}
gcc test1.cpp -o test1 `pkg-config --cflags --libs opencv`
在第七行代码中
VideoCapture capture(0); videocapture属于videoio子模块程序运行的时候会检查是否为空,如果为空(可以用0代替)默认打开摄像头,如果是路径则默认打开视频源。
Mat是一个类。由两部分数据组成:矩阵头(包括矩阵尺寸、存储方法、存储地址等信息)和一个指向所有像素值的矩阵(根据所选存储方法不同,矩阵可以是不同的维数)的指针。
waitKey延时越长 fps越小 出现跳帧 摄像头显示变卡,故要有一定的延时。
示例代码会在while循环中一直运行,你如果试图用鼠标关闭图像显示窗口,会发现始终关不掉。需要用键盘Ctrl+C 强制中断程序,非常不友好。可以在"while"中加入一个"break"
举报
更多回帖
rotate(-90deg);
回复
相关问答
LabVIEW如何
打开
显示
wmf格式
图片
?
2015-01-13
3692
利用FPGA
进行
图像处理,实现“冻结”的
特效
是什么意思?
2014-10-14
3583
请教labview如何在多个
显示
器上
显示
不同
图片
2020-12-20
3338
12864
显示
图片
时,
图片
显示
正常,但
图片
外的区域怎么会
显示
一
些乱码?
2017-04-19
2844
请问如何实现TFTLCD
显示
一
个
程序自带的
图片
?
2020-04-16
1779
如何
打开
后缀名是.img的
图片
2024-06-12
5234
matlab2011b怎么
打开一
个
图片
2015-03-30
2455
ILI9325屏幕
显示
bmp
图片
出现分段
2019-01-14
2883
求大神指点下,这段用qt
显示
图片
的程序哪错了?为什么出不来
图片
2015-06-04
2636
c51单片机去
打开一
个
文件然后
进行
输出并
显示
2014-10-13
6059
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分