
| 语言: | Visual Basic 6 |
| 版本: | 3.0.3 |
| 发布于: | 2005年4月7日 |
| 作者: | IC Imaging Control 技术支持部 |
| 系统要求: | IC Imaging Control >2.1 由WDM数据流类驱动程序驱动的相机、视频转换器或图像采集卡 |
| |
示例程序窗口如下图所示:

程序开始后首先调用内置对话框(.ShowDeviceSettingsDialog)用于选择视频设备。 而后通过.LiveStart显示设备传来的现场画面数据流。 .MemoryCurrentGrabberColorformat = ICY8 语句确保二值化算法得到的是8比特灰度级的图像:
Private Sub Form_Load() ICImagingControl1.ShowDeviceSettingsDialog If Not ICImagingControl1.DeviceValid Then Unload Me Exit Sub End If ICImagingControl1.MemoryCurrentGrabberColorformat = ICY8 ICImagingControl1.LiveDisplay = False ICImagingControl1.LiveStart End Sub
用户点击"Snap Image", .MemorySnapImage 就会从现场视频数据流中抓取一帧图像并将其写入环形缓存。
Private Sub cmdSnap_Click() ICImagingControl1.MemorySnapImage ICImagingControl1.Display cmdBinarize.Enabled = True End Sub
用户点击"Binarize",程序首先读取用户之前设定好的阈值 (threshold = txtThreshold.Text),而后创建图象缓存的引用ib, 并将其设为环形缓存中的当前图像(ImageBuffers.CurrentIndex)。 实际的图象处理操作都是在下面的两个for循环中。如果当前像素的灰度值 imageData(x,y)大于所设定的阈值,则将其设为255,反之则设为0:
Private Sub cmdBinarize_Click() Dim threshold As Integer threshold = txtThreshold.Text With ICImagingControl1 Dim ib As ImageBuffer Set ib = .ImageBuffers(.ImageBuffers.CurrentIndex) Dim imageData As Variant imageData = ib.GetImageData For y = 0 To ib.Lines - 1 For x = 0 To ib.PixelPerLine - 1 If imageData(x, y) > threshold Then imageData(x, y) = 255 Else imageData(x, y) = 0 End If Next x Next y ib.ReleaseImageData imageData .Display End With End Sub
责任声明
IC Imaging Control 源代码库中的所有代码均只用于教学目的,The Imaging Source Europe GmbH 作为IC Imaging Control的开发制造商,不对任何由于使用本文或其中源代码所产生的后果承担责任。