为什么 PictureBox 中没有显示任何结果?

发布于 2024-12-04 12:47:02 字数 1923 浏览 5 评论 0原文

我正在尝试在可变阈值上将图像更改为黑白,以便在 ocr 程序中使用。我的问题是我没有在应该处理的图像中看到任何结果。我在渲染时确实经历了短暂的等待,所以我假设它实际上正在做一些事情。

Imports System.Object
Imports System.Drawing.Bitmap

Public Class Form1
    Dim x As Integer, y As Integer
    Dim imgx As Integer, imgy As Integer
    Dim img As Bitmap
    Dim thresh As Bitmap
    Dim pixelColor As Color
    Dim threshcolor As Color
    Dim tempcolor As Color

    Public Function getpixel(ByRef x As Integer, ByRef y As Integer) As Color

    End Function

    Public Sub find_img_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles find_img.Click
        open_img.ShowDialog()
        img_dsp.Text = open_img.FileName()
        img_loc.Text = open_img.FileName
        img_dsp.ImageLocation = img_dsp.Text
    End Sub

    Public Sub find_img_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles find_img.LostFocus
        img = (img_dsp.Image)
        img_dsp.Refresh()
        img_dsp.Text = open_img.FileName()
        img_dsp.ImageLocation = img_dsp.Text
        img = (img_dsp.Image)
        img_dsp.Refresh()
    End Sub

    Public Sub render_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles render.Click
        Dim myx As Integer
        Dim myy As Integer

        img_threshold.Image = img
        thresh = img_threshold.Image

        For myy = 1 To (img.Height - 1)
            For myx = 1 To (img.Width - 1)
                tempcolor = img.GetPixel(myx, myy)

                If tempcolor.GetBrightness < NumericUpDown1.Value Then
                    thresh.SetPixel(x, y, Color.Black)
                End If

                If tempcolor.GetBrightness > NumericUpDown1.Value Then
                    thresh.SetPixel(x, y, Color.White)
                End If
            Next myx
        Next myy

        img_threshold.Image = thresh
        img_threshold.Refresh()
    End Sub
End Class    

I'm trying to change an image to black and white on a variable threshold for use in an ocr program. My problem is that I'm not seeing any results in the image that is supposedly processed. I do experience a small wait when rendering, so i am to assume that it is actually doing something.

Imports System.Object
Imports System.Drawing.Bitmap

Public Class Form1
    Dim x As Integer, y As Integer
    Dim imgx As Integer, imgy As Integer
    Dim img As Bitmap
    Dim thresh As Bitmap
    Dim pixelColor As Color
    Dim threshcolor As Color
    Dim tempcolor As Color

    Public Function getpixel(ByRef x As Integer, ByRef y As Integer) As Color

    End Function

    Public Sub find_img_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles find_img.Click
        open_img.ShowDialog()
        img_dsp.Text = open_img.FileName()
        img_loc.Text = open_img.FileName
        img_dsp.ImageLocation = img_dsp.Text
    End Sub

    Public Sub find_img_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles find_img.LostFocus
        img = (img_dsp.Image)
        img_dsp.Refresh()
        img_dsp.Text = open_img.FileName()
        img_dsp.ImageLocation = img_dsp.Text
        img = (img_dsp.Image)
        img_dsp.Refresh()
    End Sub

    Public Sub render_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles render.Click
        Dim myx As Integer
        Dim myy As Integer

        img_threshold.Image = img
        thresh = img_threshold.Image

        For myy = 1 To (img.Height - 1)
            For myx = 1 To (img.Width - 1)
                tempcolor = img.GetPixel(myx, myy)

                If tempcolor.GetBrightness < NumericUpDown1.Value Then
                    thresh.SetPixel(x, y, Color.Black)
                End If

                If tempcolor.GetBrightness > NumericUpDown1.Value Then
                    thresh.SetPixel(x, y, Color.White)
                End If
            Next myx
        Next myy

        img_threshold.Image = thresh
        img_threshold.Refresh()
    End Sub
End Class    

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

温柔女人霸气范 2024-12-11 12:47:02

你知道什么是参考吗?写A = B,然后改变A并写B = A?
如果您指定 A 和 B 指向同一个对象(对同一对象的引用),则更改一个对象也会更改另一个对象,则它们在内存中占用相同的存储空间!在编写程序之前,请先自学基础知识。

Do you know what a reference is? writing A = B, and changing A and writing B = A?
if you specify that A and B point the same object (a reference to the same object) changing one changes the other too, they occupy the same storage in memory! Teach yourself basic, before writing programs, please.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文