تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشكلة في تحويل كود من #c الي vb.net
#7
(27-09-21, 02:20 PM)معاند الحظ كتب : اخوي الماجيك

حاولت اكتشف المشكلة في كودك وان شاء الله اني لقيت الحل
وبعد البحث  في الرابط الذي ارفقته في ردك السابق وجدت كود بلغة  فيجوال بيسك 
حيث  تم استيراد فضاء الاسماء OpenCvSharp و OpenCvSharp.Extensions

لذا بحثت باستخدام جملة البحث  nuget OpenCvSharp 

وقمت بتجربة الاصدارات المختلفة لكن التي نجحت هي OpenCvSharp3-AnyCPU -Version 4.0.0.20181129 ربما لاني استخدم فيجوال ستوديو 2010

حيث قمت بتثبيتها على مشروعي التجريبي باستخدام Nuget Packages Manager  
باستخدام الامر التالي
Install-Package OpenCvSharp3-AnyCPU -Version 4.0.0.20181129

بعدها اختفت الخطوط الحمراء من الكود لكن بقي السطر التالي
Dim output = detectionNet.Forward
والمشكلة كانت ان detectionNet عبارة عن عنصر كلاس لا ادري ماهو مصدرة 
المهم في النهاية تجاوزت المشكلة هذي ايضا  عبر وضع تعريف للمتغير Dim detectionNet As New Dnn.Net
لكن بقيت بعض الخطوط في Me.labelNames.Length حيث لا ادري ماهو وايضا frameWidth

اخيرا اليك محاولتي وارجو ان يكون الحل صحيح
PHP كود :
Imports OpenCvSharp
Imports OpenCvSharp
.Extensions

Public Class Form1
    
Private Sub Form1_Load(sender As System.ObjectAs System.EventArgsHandles MyBase.Load
        Dim detectionNet 
As New Dnn.Net
        Dim output 
detectionNet.Forward
        Dim detectionMat 
= New Mat(output.Size(2), output.Size(3), MatType.CV_32Foutput.Ptr(0))

        For As Integer 0 To detectionMat.Rows 1
            Dim confidence 
As Single detectionMat.At(Of Single)(i2)

            If confidence 0.6 Then
                Dim classid 
As Integer CInt(detectionMat.At(Of Single)(i1))

                If classid Me.labelNames.Length AndAlso (classid 1Then
                    Dim x1 
As Integer CInt((detectionMat.At(Of Single)(i3) * frameWidth))
                    Dim y1 As Integer CInt((detectionMat.At(Of Single)(i4) * frameHeight))
                    Dim x2 As Integer CInt((detectionMat.At(Of Single)(i5) * frameWidth))
                    Dim y2 As Integer CInt((detectionMat.At(Of Single)(i6) * frameHeight))
                End If
            End If
        Next
    End Sub

End 
Class 
واتمنى منك ان تخبرني سواء كان الحل صحيح او لا

نعم الحل صحيح
بارك الله فيك
تسلم ايدك بجد ♥
الرد }}}
تم الشكر بواسطة: معاند الحظ , معاند الحظ


الردود في هذا الموضوع
RE: مشكلة في تحويل كود من #c الي vb.net - بواسطة الماجيك مسعد - 27-09-21, 04:31 PM


التنقل السريع :


يقوم بقرائة الموضوع: