usb摄像头采集的图像的显示问题(200分)

  • 主题发起人 主题发起人 求索客
  • 开始时间 开始时间

求索客

Unregistered / Unconfirmed
GUEST, unregistred user!
我是搞数据库的,对视频处理不了解,有个问题请各位高手给予帮助,我用usb摄像头
采集的图像想用 负像 显示在屏幕上并能调整颜色,亮度及对比度,请各位高手指教,
用什么控件或有什么现成原码,有详细答案者,我愿出200分。
 
图象采集跟摄象头无关,只要操作系统能认就行,深度历险上有个视频控件可以看看
http://vcl.vclxx.org/DELPHI/D32SAMPL/CAPMCI20.ZIP

但负像 显示在屏幕上并能调整颜色,亮度及对比度得自己加工。
 
谢谢,能否说一下增样才能实时处理屏幕上显示的
动态图像进行负像、亮度及对比度的调整呢?
 
楼上所说的例子里就有啊,你试过了吗?
 
我试过拉,CAPMCI20.ZIP里面没有负像及亮度对比度调整,
我想实现的功能是:用摄像头摄取照相底片上的图像,然后将起负像后显示在计算机的屏幕上,
要能够调整亮度,对比度及色度。
 
我试过拉,CAPMCI20.ZIP里面没有负像及亮度对比度调整,
我想实现的功能是:用摄像头摄取照相底片上的图像,然后将起负像后显示在计算机的屏幕上,
要能够调整亮度,对比度及色度,不需要保存图像,显示的图像是动态的,即底片的移动图像也跟着
变化。即动态图像显示。

 
安装控件后,用
VideoCap1.DlgVSource;

调出摄相头自带的亮度,对比度及色度功能。
 
关键问题是负像,因为看的是底片上的图像
 
不知道负像怎样实现?
请指教
 
一个字:难!

不要说是用摄像头,就是用ADOBE 公司的Premiere 软件处理AVI,一个很简单的视频效果,
如你说的负像,都不能实现直接的预览,必须创建后才能看到真正的最后效果。

如果想实时看到负像效果,去请教一下电视台的朋友吧,看看他们的设备你就会明白。
 
我曾经在广播电视局搞过维修工作,电路方面我有办法实现,但是我先利用摄像头的
高清晰度性能,另外,如果用电路实现这个功能我想把摄像头的信号直接送给计算机
的显示器(不用计算机),但是为了简化线路,和保持搞清晰度,需要了解摄像头的
R G B 的三基色信号和同步信号的提取。我只有先采取这种办法去实现这一功能啦。
对你的帮助深表感谢,送你100分可以吗?
 
谢谢!多少都无所谓。

只是你出题200分,不给出两百分是结束不了问题的[:)]

我有足够的分数问问题,你的分我还回给你
 
其实不用那么麻烦的。市面上支持windows系列的各种摄像头都支持vfw(video for windows,
微软制定的视频捕捉标准,属于win32之列)。在里面有几个函数:
m_hCapWnd:HWND ;
1, m_hCapWnd:=capCreateCaptureWindow((LPTSTR)TEXT('这里是标题可以不填'),
  WS_CHILD|WS_VISIBLE|WS_EX_CLIENTEDGE|WS_EX_DLGMODALFRAME,0,0,Width,heigh,
display->hwnd); //Width,显示视频图像的宽度 ,heigh 显示视频图像的宽度
// display->hwnd 指的是 显示视频窗口的句炳,可以是form ,也可以是panel.
返回一个句柄。 下一步的函数需要调用它。
2 capDriverConnect(m_hCapWnd,0));
这个函数是连接设备: 0,表示第一块,1表示第二块(多个设备的时候)
3 capPreviewRate(m_hCapWnd,30); // 设置预示帧频,一秒显示多少帧。
capPreview(m_hCapWnd,TRUE); // 表示以预览方式显示,也可以用capoverlay(m_hCapWnd,TRUE);
进行overlay方式显示图像。
其它的函数(捕捉动态图像,捕捉单帧画面,压缩图像等,自己看函数帮助就行,这里就不一一介绍)
c++ builder 包含:vfw.h delphi 包含:vfw

欢迎 交流: chenyingchun@yeah.net.需要示例程序的请给我发email.

 
redsky.l,分数我一定要给的。只不过对于一个想法不能实现有些不甘心而已。

blackbook:
我很想要个例程看一看,请发给我好吗?shtforest@telekbird.com.cn
 
给一段调色代码,三种颜色同时调相同值时为亮度调节,分另用255减三种颜色值应为负片--没试过。

procedure TForm2.TrackBar5Change(Sender: TObject);
var i, j, RedValue, GreenValue, BlueValue: integer;
OrigRow, DestRow: pRGBArray;
begin
// get brightness increment value
RedValue := TrackBar5.Position;
GreenValue := TrackBar6.Position;
BlueValue := TrackBar7.Position;

// for each row of pixels
for i := 0 to Image4.Picture.Height - 1 do
begin
OrigRow := Image4.Picture.Bitmap.ScanLine;
DestRow := Image1.Picture.Bitmap.ScanLine;

// for each pixel in row
for j := 0 to Image4.Picture.Width - 1 do
begin
// add brightness value to pixel's RGB values
if RedValue > 0 then
DestRow[j].rgbtRed := Min(255, OrigRow[j].rgbtRed + RedValue)
else
DestRow[j].rgbtRed := Max(0, OrigRow[j].rgbtRed + RedValue);

if GreenValue > 0 then
DestRow[j].rgbtGreen := Min(255, OrigRow[j].rgbtGreen + GreenValue)
else
DestRow[j].rgbtGreen := Max(0, OrigRow[j].rgbtGreen + GreenValue);

if BlueValue > 0 then
DestRow[j].rgbtBlue := Min(255, OrigRow[j].rgbtBlue + BlueValue)
else
DestRow[j].rgbtBlue := Max(0, OrigRow[j].rgbtBlue + BlueValue);

end;
end;
Image1.Repaint;
end;
 
邮箱?

我发给你,我专做这个的,呵呵
 
多人接受答案了。
 
请问blackbook
我用usb摄像头都用这几个函数吗
我用带图象捕捉卡的就可以实现但用usb的就不知道具体怎样做了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
634
import
I
I
回复
0
查看
647
import
I
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部