设定:
图片链接很抱歉,但是一张图片大约20MB,也不想丢失任何质量
图片样本:
https://drive.google.com/file/d/11PU-5fzvSJt1lKlmP-lQXhdsuCJPGKbN/view?usp=sharing https://drive.google.com/file/d/1B3lSFx8YvTYv3hzuuuYtphoHBuyEdc4o/view
案例:会有大小从5x5到10x10的不同形状的金属零件。在这些金属零件内部,有许多2至10〜的圆形孔,必须非常准确地检测到。孔的实际大小是未知的,因为可能的零件种类繁多。目的是使用OpenCV编写通用算法,该算法可与任何金属零件配合使用并检测圆形孔。
我们尝试过的方法:我们尝试使用HoughCircles算法检测孔,但几乎没有成功。该算法过于敏感,或者根本无法检测到孔。我们已经尝试了不同的param1和param2值,但没有成功。在使用HoughCircles之前,我们还尝试过使图像模糊并通过Canny,但是这种方法并未产生更好的结果。对于较低分辨率的图片,完全相同的算法效果更好。但是,不能牺牲分辨率,因为精度在此项目中极为重要。
https://drive.google.com/file/d/1TRdDbperi37bha0uJVALS4C2dBuaNz6u/view?usp=sharing
使用以下参数检测到上述圆圈:
minradius=0
maxradius=0
dp=1
param1=100
param2=21
Run Code Online (Sandbox Code Playgroud)
通过使用以上参数,我们几乎可以获得所需的结果。当我们对不同的图片使用相同的参数时,就会出现问题。
我们想要得到的最终结果是给定圆的直径具有很高的精度,并且我们希望在不同的零件图片上可以使用相同的算法
使这个问题与其他发布的问题不同的原因是,我们不知道给定圆的近似半径(因此我们无法操纵minradius,maxradius,param1,param2或任何其他值)。
python opencv image-processing computer-vision hough-transform
我刚刚开始Android游戏开发,我遇到了一个愚蠢的问题.我想在我的手机或虚拟机上运行一个应用程序,我收到此错误:
01-11 21:16:45.362: E/AndroidRuntime(19063): FATAL EXCEPTION: main
01-11 21:16:45.362: E/AndroidRuntime(19063): Process: com.mygdx.game, PID: 19063
01-11 21:16:45.362: E/AndroidRuntime(19063): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.mygdx.game/com.mygdx.game.AndroidLauncher}: java.lang.ClassNotFoundException: Didn't find class "com.mygdx.game.AndroidLauncher" on path: DexPathList[[zip file "/data/app/com.mygdx.game-1/base.apk"],nativeLibraryDirectories=[/data/app/com.mygdx.game-1/lib/arm, /vendor/lib, /system/lib]]
01-11 21:16:45.362: E/AndroidRuntime(19063): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2515)
01-11 21:16:45.362: E/AndroidRuntime(19063): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2723)
01-11 21:16:45.362: E/AndroidRuntime(19063): at android.app.ActivityThread.access$900(ActivityThread.java:172)
01-11 21:16:45.362: E/AndroidRuntime(19063): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1422)
01-11 21:16:45.362: E/AndroidRuntime(19063): at android.os.Handler.dispatchMessage(Handler.java:102)
01-11 21:16:45.362: E/AndroidRuntime(19063): at android.os.Looper.loop(Looper.java:145)
01-11 21:16:45.362: E/AndroidRuntime(19063): at android.app.ActivityThread.main(ActivityThread.java:5832)
01-11 21:16:45.362: E/AndroidRuntime(19063): at java.lang.reflect.Method.invoke(Native Method)
01-11 21:16:45.362: E/AndroidRuntime(19063): at …Run Code Online (Sandbox Code Playgroud)