OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9788|回复: 16

探索者LCD屏幕像素点阈值判断的问题

[复制链接]

8

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2022-1-9
在线时间
43 小时
发表于 2022-11-3 10:53:29 | 显示全部楼层 |阅读模式
10金钱
LCD显示的是摄像头采集到的图像和矩形的像素点,能否对像素点进行阈值判断,只显示白色的像素点呢?
PC0.jpg

最佳答案

查看完整内容[请看2#楼]

这哪需要例程,自己想想就行。 比如在(x,y)描点的函数为display(x,y,color); 随便想个例子: picture[100][50];//图像 int c; for(y=0;y
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

3344

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8462
金钱
8462
注册时间
2020-5-11
在线时间
3904 小时
发表于 2022-11-3 10:53:30 | 显示全部楼层
18700827839 发表于 2022-11-3 17:07
请问这种办法有对应的例程吗?我现在只看了二值化的一些阈值设置,还不会移植到数组的阈值设置中来

这哪需要例程,自己想想就行。
比如在(x,y)描点的函数为display(x,y,color);
随便想个例子:
picture[100][50];//图像
int c;
for(y=0;y<50;y++)
for(x=0;x<100;x++)
{
c=picture[y][x];//取图像像素点
if(c==白色)//去掉if就显示完整图像。
   display(x,y,c);//描点
}

专治疑难杂症
回复

使用道具 举报

12

主题

3344

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8462
金钱
8462
注册时间
2020-5-11
在线时间
3904 小时
发表于 2022-11-3 11:43:48 | 显示全部楼层

其它像素点透明显示背景图片?像ICO图标那样?
专治疑难杂症
回复

使用道具 举报

2

主题

582

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2690
金钱
2690
注册时间
2014-5-23
在线时间
188 小时
发表于 2022-11-3 13:46:16 | 显示全部楼层
可以的
回复

使用道具 举报

8

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2022-1-9
在线时间
43 小时
 楼主| 发表于 2022-11-3 15:25:31 | 显示全部楼层
LcwSwust 发表于 2022-11-3 11:43

其它像素点透明显示背景图片?像ICO图标那样?

这个透明具体怎么操作呢?我是新手,感觉LCD的像素都是有颜色的吧
回复

使用道具 举报

8

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2022-1-9
在线时间
43 小时
 楼主| 发表于 2022-11-3 15:26:13 | 显示全部楼层

老哥,有什么思路可以提供一下吗?
回复

使用道具 举报

12

主题

3344

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8462
金钱
8462
注册时间
2020-5-11
在线时间
3904 小时
发表于 2022-11-3 15:53:54 | 显示全部楼层
18700827839 发表于 2022-11-3 15:25
这个透明具体怎么操作呢?我是新手,感觉LCD的像素都是有颜色的吧

对,有颜色。你看电脑桌面上显示的图标,是不是有些地方是镂空的能看到壁纸。
我的意思是就是这种效果,简单的做法是先显示壁纸,后显示图标,显示图标时遇到图标中某种特殊颜色(或叫透明色)就不需显示,就是壁纸的颜色。
记得正点原子的程序显示字符也是有这种效果的。
专治疑难杂症
回复

使用道具 举报

8

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2022-1-9
在线时间
43 小时
 楼主| 发表于 2022-11-3 16:32:43 | 显示全部楼层
LcwSwust 发表于 2022-11-3 15:53
对,有颜色。你看电脑桌面上显示的图标,是不是有些地方是镂空的能看到壁纸。
我的意思是就是这种效果, ...

也就是说我可以先显示摄像头采集的一帧背景,再显示定义的数组里的像素,并把数组中黑色的像素点显示定义为”特殊颜色“吗?
回复

使用道具 举报

8

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2022-1-9
在线时间
43 小时
 楼主| 发表于 2022-11-3 16:55:49 | 显示全部楼层
LcwSwust 发表于 2022-11-3 15:53
对,有颜色。你看电脑桌面上显示的图标,是不是有些地方是镂空的能看到壁纸。
我的意思是就是这种效果, ...

有没有可能有这样一种办法,对数组内的像素点设置一个阈值,如果是白色就显示
回复

使用道具 举报

12

主题

3344

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8462
金钱
8462
注册时间
2020-5-11
在线时间
3904 小时
发表于 2022-11-3 17:02:08 | 显示全部楼层
本帖最后由 LcwSwust 于 2022-11-3 17:03 编辑
18700827839 发表于 2022-11-3 16:32
也就是说我可以先显示摄像头采集的一帧背景,再显示定义的数组里的像素,并把数组中黑色的像素点显示定义 ...

对,如果在内存中画好两张图后再发给显示屏没问题,如果两张图分别发给显示屏就可能会有闪烁。
其实也可不分先后,同时显示两个图像。
也就是将两个图像融合在一起后再发给显示屏,比如:向显示屏发送(x,y)座标处的数据时,这个数据就要从两个图像中取出来处理一下,看到底是该发送图像A的像素还是图像B的像素。

专治疑难杂症
回复

使用道具 举报

12

主题

3344

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8462
金钱
8462
注册时间
2020-5-11
在线时间
3904 小时
发表于 2022-11-3 17:04:34 | 显示全部楼层
18700827839 发表于 2022-11-3 16:55
有没有可能有这样一种办法,对数组内的像素点设置一个阈值,如果是白色就显示

必须能啊,像素点不都是由单片机发送数据控制的吗,写程序处理一下不就好了。
专治疑难杂症
回复

使用道具 举报

8

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2022-1-9
在线时间
43 小时
 楼主| 发表于 2022-11-3 17:07:09 | 显示全部楼层
LcwSwust 发表于 2022-11-3 17:04
必须能啊,像素点不都是由单片机发送数据控制的吗,写程序处理一下不就好了。

请问这种办法有对应的例程吗?我现在只看了二值化的一些阈值设置,还不会移植到数组的阈值设置中来
回复

使用道具 举报

8

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2022-1-9
在线时间
43 小时
 楼主| 发表于 2022-11-5 11:53:59 | 显示全部楼层
LcwSwust 发表于 2022-11-3 17:30
这哪需要例程,自己想想就行。
比如在(x,y)描点的函数为display(x,y,color);
随便想个例子:

如果您说的描点函数,我用的是LCD_Fill函数,应该怎么处理呢?
回复

使用道具 举报

12

主题

3344

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8462
金钱
8462
注册时间
2020-5-11
在线时间
3904 小时
发表于 2022-11-5 12:01:28 | 显示全部楼层
18700827839 发表于 2022-11-5 11:53
如果您说的描点函数,我用的是LCD_Fill函数,应该怎么处理呢?

要不你再思考一下
专治疑难杂症
回复

使用道具 举报

8

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2022-1-9
在线时间
43 小时
 楼主| 发表于 2022-11-11 10:05:03 | 显示全部楼层
LcwSwust 发表于 2022-11-3 17:02
对,如果在内存中画好两张图后再发给显示屏没问题,如果两张图分别发给显示屏就可能会有闪烁。
其实也可 ...

我按照你的阈值判断方法,已经成功了。我还想问一下你说的这个融合后发给LCD屏幕是什么意思呢,一个是数组,一个是DCMI直接发送到LCD,这两个应该如何融合呢?如果给摄像头捕获的图像建个数组,要想全屏显示的话,不支持那么大的数组吧
回复

使用道具 举报

12

主题

3344

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8462
金钱
8462
注册时间
2020-5-11
在线时间
3904 小时
发表于 2022-11-11 10:12:02 | 显示全部楼层
本帖最后由 LcwSwust 于 2022-11-11 10:13 编辑
18700827839 发表于 2022-11-11 10:05
我按照你的阈值判断方法,已经成功了。我还想问一下你说的这个融合后发给LCD屏幕是什么意思呢,一个是数 ...

融合就是收到摄像头数据后处理一下再发给显示屏。
数组不够也有办法,比如只保存一行的数据到数组,
数组定义两个(如 U8 bufa[1024],bufb[1024]),收到数据(DMA)存入其中一个(如bufa),存满后立即切换(DMA指向bufb),
然后处理(融合图像)刚才收到数据那个数组(bufa)、并发给显示屏。
有点像FIFO那意思,或叫乒乓操作。
专治疑难杂症
回复

使用道具 举报

8

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2022-1-9
在线时间
43 小时
 楼主| 发表于 2022-11-14 09:04:33 | 显示全部楼层
LcwSwust 发表于 2022-11-11 10:12
融合就是收到摄像头数据后处理一下再发给显示屏。
数组不够也有办法,比如只保存一行的数据到数组,
数 ...

谢谢,我好好想一下。如果我数组中的像素点变化有延时,感觉不适用于你的阈值判断方法。上次是STM32上电就显示像素,我用了阈值判断,就很好。但是有延时以后,好像不起作用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-24 23:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表