关于WDM视频采集时在运动物体的边缘出现横向的“毛刺”问题 ( 积分: 200 )

  • 主题发起人 主题发起人 tony0228
  • 开始时间 开始时间
T

tony0228

Unregistered / Unconfirmed
GUEST, unregistred user!
  用DSPACK或Videograbber等组件进行模拟视频信号的实时采集,都会出现上述问题。
  查了一下有关视频采集的资料,有说:“'毛刺'的产生是因为摄象机和电视的一个帧有两个场组成,两个场的产生时间是不一样的。在PC上,我们是同时看到一个帧即两个场,所以看到了由于运动位移产生的'毛刺'。这在PC上观察感觉难以接受,但是在TV上观察的时候反而是一种优势,使运动更为平滑。如果制作的目的只是为了在PC上观看,可以在编辑的时候用de-interlace消除交错的'毛刺'。”
  请问在程序里如何消除“毛刺”及最大化地使实时显示的视频更平滑(不丢帧)。
 
  用DSPACK或Videograbber等组件进行模拟视频信号的实时采集,都会出现上述问题。
  查了一下有关视频采集的资料,有说:“'毛刺'的产生是因为摄象机和电视的一个帧有两个场组成,两个场的产生时间是不一样的。在PC上,我们是同时看到一个帧即两个场,所以看到了由于运动位移产生的'毛刺'。这在PC上观察感觉难以接受,但是在TV上观察的时候反而是一种优势,使运动更为平滑。如果制作的目的只是为了在PC上观看,可以在编辑的时候用de-interlace消除交错的'毛刺'。”
  请问在程序里如何消除“毛刺”及最大化地使实时显示的视频更平滑(不丢帧)。
 
PS:我的视频格式要求为768x576(但试过用小的格式也会出现毛刺和丢帧现象)
 
再补充一点,视采集卡试用过多种,包括圆刚EZCapture、天敏10MOONS、WINFAST VC100XP、品尼高Studio AV/DV全能王V9,皆无法调试出满意的实时影象,但用采集卡自带的程序就可以看到满意的影象,所以我认为还是我没调整好采集的参数吧。
 
其实你调整一下采集卡的颜色空间就可以了,一般情况下,现在的视频采集卡大多数都是采用BT878A芯片的,用RGB24时,一般都会出现这种情况,你只要设定为YUY2或YV12就不会了,但是使用VIDEOGRABBER时却要求为RGB24,你只需要添加多一个COLOR SPACE CONVERTOR过滤器便可以解决了
 
请问:用Videograbber时,怎么添加COLOR SPACE CONVERTOR过滤器?愿闻其详。
 
你是使用DSPACK控件包吗,假如是的话,可以使用一下代码:
function GetFilterByName(name: string;
Category: TGuid): IBaseFilter;
var
i: integer;
FoundID: integer;
SysEnum: TSysDevEnum;
begin

FoundId := -1;
SysEnum := TSysDevEnum.Create();
SysEnum.SelectGUIDCategory(Category);
for i := 0 to SysEnum.CountFilters - 1do

begin

if uppercase(Name) = upperCase(SysEnum.Filters.FriendlyName) then

FoundID := i;
end;

if FoundID <> -1 then

Result := SysEnum.GetBaseFilter(FoundID)
else

Result := nil;
SysEnum.Free;
end;

...............
var
fltcolorspace:IBaseFilter;
...........
fltColorSpace := GetFilterbyName('Color Space Converter', CLSID_LegacyAmFilterCategory);
if fltColorSpace = nil then

begin

WriteLog('获取颜色转换过滤器失败!', 2);
exit;
end;

......
if (FilterGraph as IGraphBuilder).AddFilter(fltColorSpace, 'Color Space converter') <> S_OK then

begin

WriteLog('添加颜色转换过滤器失败!', 2);
exit;
end;
 
OK,我用DSPACK试试。
另,如果用Videograbber怎么解决?分不够可以加[:D]
 
DSPACK里面有SAMPLEGRABBER这个控件呀,和videograbber差不多的
 
我试过WINFAST VC100XP和Videograbber控件,没有毛刺出现。
 
我用Videograbber写的程序已经接近完成了,在测试时才发现实时显示采集的视频效果差(丢帧、毛刺)。
用WINFAST VC100XP和Videograbber,如果是电视影讯等信号,毛刺是观察不到的(调试程序过程中我就用VCD的信号,没发现毛刺和丢帧)。但,我做的是采集显微镜视频信号的程序,当观察的物体水平移动时,边缘就会出现“毛刺”,而且有明显的丢帧现象。
 
问题仍无法解决

现在已经了解到,出现毛刺的原因是因为视频信号有两个场(奇、偶)不同步而造成的。

很多视频编辑软件都有Deinterlacing功能,用来过滤一个场、然后对隔行信号的帧进行修补(复制或插值),从而取到最好质量的视频……
然而,怎样编程来实现呢?
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
666
import
I
I
回复
0
查看
796
import
I
后退
顶部