first commit
|
@ -0,0 +1,45 @@
|
|||
# Miscellaneous
|
||||
*.class
|
||||
*.log
|
||||
*.pyc
|
||||
*.swp
|
||||
.DS_Store
|
||||
.atom/
|
||||
.build/
|
||||
.buildlog/
|
||||
.history
|
||||
.svn/
|
||||
.swiftpm/
|
||||
migrate_working_dir/
|
||||
|
||||
# IntelliJ related
|
||||
*.iml
|
||||
*.ipr
|
||||
*.iws
|
||||
.idea/
|
||||
|
||||
# The .vscode folder contains launch configuration and tasks you configure in
|
||||
# VS Code which you may wish to be included in version control, so this line
|
||||
# is commented out by default.
|
||||
#.vscode/
|
||||
|
||||
# Flutter/Dart/Pub related
|
||||
**/doc/api/
|
||||
**/ios/Flutter/.last_build_id
|
||||
.dart_tool/
|
||||
.flutter-plugins
|
||||
.flutter-plugins-dependencies
|
||||
.pub-cache/
|
||||
.pub/
|
||||
/build/
|
||||
|
||||
# Symbolication related
|
||||
app.*.symbols
|
||||
|
||||
# Obfuscation related
|
||||
app.*.map.json
|
||||
|
||||
# Android Studio will place build artifacts here
|
||||
/android/app/debug
|
||||
/android/app/profile
|
||||
/android/app/release
|
|
@ -0,0 +1,45 @@
|
|||
# This file tracks properties of this Flutter project.
|
||||
# Used by Flutter tool to assess capabilities and perform upgrades etc.
|
||||
#
|
||||
# This file should be version controlled and should not be manually edited.
|
||||
|
||||
version:
|
||||
revision: "d8a9f9a52e5af486f80d932e838ee93861ffd863"
|
||||
channel: "stable"
|
||||
|
||||
project_type: app
|
||||
|
||||
# Tracks metadata for the flutter migrate command
|
||||
migration:
|
||||
platforms:
|
||||
- platform: root
|
||||
create_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863
|
||||
base_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863
|
||||
- platform: android
|
||||
create_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863
|
||||
base_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863
|
||||
- platform: ios
|
||||
create_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863
|
||||
base_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863
|
||||
- platform: linux
|
||||
create_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863
|
||||
base_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863
|
||||
- platform: macos
|
||||
create_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863
|
||||
base_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863
|
||||
- platform: web
|
||||
create_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863
|
||||
base_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863
|
||||
- platform: windows
|
||||
create_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863
|
||||
base_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863
|
||||
|
||||
# User provided section
|
||||
|
||||
# List of Local paths (relative to this file) that should be
|
||||
# ignored by the migrate tool.
|
||||
#
|
||||
# Files that are not part of the templates will be ignored by default.
|
||||
unmanaged_files:
|
||||
- 'lib/main.dart'
|
||||
- 'ios/Runner.xcodeproj/project.pbxproj'
|
|
@ -0,0 +1,16 @@
|
|||
# classifragise
|
||||
|
||||
A new Flutter project.
|
||||
|
||||
## Getting Started
|
||||
|
||||
This project is a starting point for a Flutter application.
|
||||
|
||||
A few resources to get you started if this is your first Flutter project:
|
||||
|
||||
- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab)
|
||||
- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook)
|
||||
|
||||
For help getting started with Flutter development, view the
|
||||
[online documentation](https://docs.flutter.dev/), which offers tutorials,
|
||||
samples, guidance on mobile development, and a full API reference.
|
|
@ -0,0 +1,28 @@
|
|||
# This file configures the analyzer, which statically analyzes Dart code to
|
||||
# check for errors, warnings, and lints.
|
||||
#
|
||||
# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
|
||||
# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
|
||||
# invoked from the command line by running `flutter analyze`.
|
||||
|
||||
# The following line activates a set of recommended lints for Flutter apps,
|
||||
# packages, and plugins designed to encourage good coding practices.
|
||||
include: package:flutter_lints/flutter.yaml
|
||||
|
||||
linter:
|
||||
# The lint rules applied to this project can be customized in the
|
||||
# section below to disable rules from the `package:flutter_lints/flutter.yaml`
|
||||
# included above or to enable additional rules. A list of all available lints
|
||||
# and their documentation is published at https://dart.dev/lints.
|
||||
#
|
||||
# Instead of disabling a lint rule for the entire project in the
|
||||
# section below, it can also be suppressed for a single line of code
|
||||
# or a specific dart file by using the `// ignore: name_of_lint` and
|
||||
# `// ignore_for_file: name_of_lint` syntax on the line or in the file
|
||||
# producing the lint.
|
||||
rules:
|
||||
# avoid_print: false # Uncomment to disable the `avoid_print` rule
|
||||
# prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
|
||||
|
||||
# Additional information about this file can be found at
|
||||
# https://dart.dev/guides/language/analysis-options
|
|
@ -0,0 +1,13 @@
|
|||
gradle-wrapper.jar
|
||||
/.gradle
|
||||
/captures/
|
||||
/gradlew
|
||||
/gradlew.bat
|
||||
/local.properties
|
||||
GeneratedPluginRegistrant.java
|
||||
|
||||
# Remember to never publicly share your keystore.
|
||||
# See https://flutter.dev/to/reference-keystore
|
||||
key.properties
|
||||
**/*.keystore
|
||||
**/*.jks
|
|
@ -0,0 +1,44 @@
|
|||
plugins {
|
||||
id "com.android.application"
|
||||
id "kotlin-android"
|
||||
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
|
||||
id "dev.flutter.flutter-gradle-plugin"
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "com.example.classifragise"
|
||||
compileSdk = flutter.compileSdkVersion
|
||||
ndkVersion = flutter.ndkVersion
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||
targetCompatibility = JavaVersion.VERSION_1_8
|
||||
}
|
||||
|
||||
kotlinOptions {
|
||||
jvmTarget = JavaVersion.VERSION_1_8
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
||||
applicationId = "com.example.classifragise"
|
||||
// You can update the following values to match your application needs.
|
||||
// For more information, see: https://flutter.dev/to/review-gradle-config.
|
||||
minSdk = flutter.minSdkVersion
|
||||
targetSdk = flutter.targetSdkVersion
|
||||
versionCode = flutter.versionCode
|
||||
versionName = flutter.versionName
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
// TODO: Add your own signing config for the release build.
|
||||
// Signing with the debug keys for now, so `flutter run --release` works.
|
||||
signingConfig = signingConfigs.debug
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
flutter {
|
||||
source = "../.."
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<!-- The INTERNET permission is required for development. Specifically,
|
||||
the Flutter tool needs it to communicate with the running application
|
||||
to allow setting breakpoints, to provide hot reload, etc.
|
||||
-->
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
</manifest>
|
|
@ -0,0 +1,62 @@
|
|||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<uses-permission android:name="android.permission.CAMERA"/>
|
||||
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32"/>
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
|
||||
<application
|
||||
android:label="classifragise"
|
||||
android:name="${applicationName}"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:requestLegacyExternalStorage="true"
|
||||
android:usesCleartextTraffic="true">
|
||||
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:exported="true"
|
||||
android:launchMode="singleTop"
|
||||
android:taskAffinity=""
|
||||
android:theme="@style/LaunchTheme"
|
||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
||||
android:hardwareAccelerated="true"
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
|
||||
<meta-data
|
||||
android:name="io.flutter.embedding.android.NormalTheme"
|
||||
android:resource="@style/NormalTheme"/>
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
<category android:name="android.intent.category.LAUNCHER"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity
|
||||
android:name="com.yalantis.ucrop.UCropActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>
|
||||
|
||||
<provider
|
||||
android:name="androidx.core.content.FileProvider"
|
||||
android:authorities="${applicationId}.fileprovider"
|
||||
android:grantUriPermissions="true"
|
||||
android:exported="false">
|
||||
<meta-data
|
||||
android:name="android.support.FILE_PROVIDER_PATHS"
|
||||
android:resource="@xml/file_paths"/>
|
||||
</provider>
|
||||
|
||||
<meta-data
|
||||
android:name="flutterEmbedding"
|
||||
android:value="2"/>
|
||||
</application>
|
||||
|
||||
<queries>
|
||||
<intent>
|
||||
<action android:name="android.intent.action.PROCESS_TEXT"/>
|
||||
<data android:mimeType="text/plain"/>
|
||||
</intent>
|
||||
</queries>
|
||||
</manifest>
|
|
@ -0,0 +1,5 @@
|
|||
package com.example.classifragise
|
||||
|
||||
import io.flutter.embedding.android.FlutterActivity
|
||||
|
||||
class MainActivity: FlutterActivity()
|
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Modify this file to customize your launch splash screen -->
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="?android:colorBackground" />
|
||||
|
||||
<!-- You can insert your own image assets here -->
|
||||
<!-- <item>
|
||||
<bitmap
|
||||
android:gravity="center"
|
||||
android:src="@mipmap/launch_image" />
|
||||
</item> -->
|
||||
</layer-list>
|
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Modify this file to customize your launch splash screen -->
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="@android:color/white" />
|
||||
|
||||
<!-- You can insert your own image assets here -->
|
||||
<!-- <item>
|
||||
<bitmap
|
||||
android:gravity="center"
|
||||
android:src="@mipmap/launch_image" />
|
||||
</item> -->
|
||||
</layer-list>
|
After Width: | Height: | Size: 544 B |
After Width: | Height: | Size: 442 B |
After Width: | Height: | Size: 721 B |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 1.4 KiB |
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
|
||||
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||
<!-- Show a splash screen on the activity. Automatically removed when
|
||||
the Flutter engine draws its first frame -->
|
||||
<item name="android:windowBackground">@drawable/launch_background</item>
|
||||
</style>
|
||||
<!-- Theme applied to the Android Window as soon as the process has started.
|
||||
This theme determines the color of the Android Window while your
|
||||
Flutter UI initializes, as well as behind your Flutter UI while its
|
||||
running.
|
||||
|
||||
This Theme is only used starting with V2 of Flutter's Android embedding. -->
|
||||
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||
<item name="android:windowBackground">?android:colorBackground</item>
|
||||
</style>
|
||||
</resources>
|
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
|
||||
<style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
|
||||
<!-- Show a splash screen on the activity. Automatically removed when
|
||||
the Flutter engine draws its first frame -->
|
||||
<item name="android:windowBackground">@drawable/launch_background</item>
|
||||
</style>
|
||||
<!-- Theme applied to the Android Window as soon as the process has started.
|
||||
This theme determines the color of the Android Window while your
|
||||
Flutter UI initializes, as well as behind your Flutter UI while its
|
||||
running.
|
||||
|
||||
This Theme is only used starting with V2 of Flutter's Android embedding. -->
|
||||
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
|
||||
<item name="android:windowBackground">?android:colorBackground</item>
|
||||
</style>
|
||||
</resources>
|
|
@ -0,0 +1,3 @@
|
|||
<paths>
|
||||
<external-files-path name="images" path="Pictures/"/>
|
||||
</paths>
|
|
@ -0,0 +1,7 @@
|
|||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<!-- The INTERNET permission is required for development. Specifically,
|
||||
the Flutter tool needs it to communicate with the running application
|
||||
to allow setting breakpoints, to provide hot reload, etc.
|
||||
-->
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
</manifest>
|
|
@ -0,0 +1,19 @@
|
|||
allprojects {
|
||||
repositories {
|
||||
google()
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
rootProject.buildDir = "../build"
|
||||
subprojects {
|
||||
project.buildDir = "${rootProject.buildDir}/${project.name}"
|
||||
}
|
||||
subprojects {
|
||||
project.evaluationDependsOn(":app")
|
||||
}
|
||||
|
||||
tasks.register("clean", Delete) {
|
||||
delete rootProject.buildDir
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError
|
||||
android.useAndroidX=true
|
||||
android.enableJetifier=true
|
|
@ -0,0 +1,5 @@
|
|||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip
|
|
@ -0,0 +1,25 @@
|
|||
pluginManagement {
|
||||
def flutterSdkPath = {
|
||||
def properties = new Properties()
|
||||
file("local.properties").withInputStream { properties.load(it) }
|
||||
def flutterSdkPath = properties.getProperty("flutter.sdk")
|
||||
assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
|
||||
return flutterSdkPath
|
||||
}()
|
||||
|
||||
includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
|
||||
|
||||
repositories {
|
||||
google()
|
||||
mavenCentral()
|
||||
gradlePluginPortal()
|
||||
}
|
||||
}
|
||||
|
||||
plugins {
|
||||
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
|
||||
id "com.android.application" version "8.2.1" apply false
|
||||
id "org.jetbrains.kotlin.android" version "1.8.22" apply false
|
||||
}
|
||||
|
||||
include ":app"
|
After Width: | Height: | Size: 64 KiB |
After Width: | Height: | Size: 9.3 KiB |
After Width: | Height: | Size: 8.6 KiB |
After Width: | Height: | Size: 70 KiB |
After Width: | Height: | Size: 228 KiB |
After Width: | Height: | Size: 55 KiB |
After Width: | Height: | Size: 374 KiB |
After Width: | Height: | Size: 76 KiB |
After Width: | Height: | Size: 96 KiB |
After Width: | Height: | Size: 76 KiB |
After Width: | Height: | Size: 212 KiB |
After Width: | Height: | Size: 105 KiB |
After Width: | Height: | Size: 121 KiB |
|
@ -0,0 +1,151 @@
|
|||
import os
|
||||
import cv2
|
||||
import numpy as np
|
||||
import joblib
|
||||
import skimage.feature as ft
|
||||
from flask import Flask, request, jsonify
|
||||
from flask_cors import CORS
|
||||
from rembg import remove
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
# Inisialisasi Flask
|
||||
app = Flask(__name__)
|
||||
CORS(app) # Mengizinkan akses dari Flutter
|
||||
|
||||
# Path model dan scaler
|
||||
model_path = r'C:\Strawberry\classifragise\flask.backend\strawberry_freshness_knn.pkl'
|
||||
scaler_path = r'C:\Strawberry\classifragise\flask.backend\scaler_knn.pkl'
|
||||
|
||||
# Load model & scaler
|
||||
knn_model = joblib.load(model_path)
|
||||
scaler = joblib.load(scaler_path)
|
||||
|
||||
# Folder untuk menyimpan gambar sementara
|
||||
UPLOAD_FOLDER = "uploads"
|
||||
os.makedirs(UPLOAD_FOLDER, exist_ok=True)
|
||||
|
||||
def remove_background(input_path, output_path):
|
||||
"""Menghapus latar belakang gambar"""
|
||||
try:
|
||||
with open(input_path, "rb") as input_file:
|
||||
img_data = input_file.read()
|
||||
output_data = remove(img_data)
|
||||
|
||||
with open(output_path, "wb") as output_file:
|
||||
output_file.write(output_data)
|
||||
|
||||
print(f"✅ Background dihapus untuk {input_path}")
|
||||
except Exception as e:
|
||||
print(f"❌ Gagal menghapus background: {e}")
|
||||
|
||||
def refine_segmentation(image_path):
|
||||
"""Refine hasil segmentasi setelah penghapusan background"""
|
||||
img = cv2.imread(image_path, cv2.IMREAD_UNCHANGED)
|
||||
|
||||
if img is None:
|
||||
print("❌ Gagal membaca gambar untuk refining segmentation")
|
||||
return
|
||||
|
||||
# Konversi ke grayscale
|
||||
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
|
||||
|
||||
# Coba threshold lebih lembut
|
||||
_, binary = cv2.threshold(gray, 30, 255, cv2.THRESH_BINARY)
|
||||
|
||||
# Operasi morfologi untuk menghilangkan noise
|
||||
kernel = np.ones((2,2), np.uint8)
|
||||
binary = cv2.morphologyEx(binary, cv2.MORPH_CLOSE, kernel)
|
||||
|
||||
# Simpan hasil refinemen
|
||||
cv2.imwrite(image_path, binary)
|
||||
print("✅ Segmentasi background diperbaiki!")
|
||||
|
||||
def extract_features(image_path):
|
||||
"""Ekstraksi fitur RGB, GLCM, dan Laplacian dari gambar"""
|
||||
img = cv2.imread(image_path)
|
||||
|
||||
if img is None:
|
||||
raise ValueError(f"Gambar tidak dapat dibaca: {image_path}")
|
||||
|
||||
# Konversi ke grayscale
|
||||
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
|
||||
|
||||
# Rata-rata nilai RGB
|
||||
mean_r = np.mean(img[:, :, 2])
|
||||
mean_g = np.mean(img[:, :, 1])
|
||||
mean_b = np.mean(img[:, :, 0])
|
||||
|
||||
# GLCM features
|
||||
glcm = ft.graycomatrix(gray, distances=[1], angles=[0], levels=256, symmetric=True, normed=True)
|
||||
contrast = ft.graycoprops(glcm, 'contrast')[0, 0]
|
||||
homogeneity = ft.graycoprops(glcm, 'homogeneity')[0, 0]
|
||||
energy = ft.graycoprops(glcm, 'energy')[0, 0]
|
||||
correlation = ft.graycoprops(glcm, 'correlation')[0, 0]
|
||||
|
||||
# Laplacian features
|
||||
laplacian = cv2.Laplacian(gray, cv2.CV_64F)
|
||||
mean_laplacian = np.mean(laplacian)
|
||||
var_laplacian = np.var(laplacian)
|
||||
|
||||
return np.array([mean_r, mean_g, mean_b, contrast, homogeneity, energy, correlation, mean_laplacian, var_laplacian]).reshape(1, -1)
|
||||
|
||||
@app.route("/")
|
||||
def home():
|
||||
return jsonify({"message": "API Flask untuk Klasifikasi Stroberi Aktif!"})
|
||||
|
||||
@app.route("/predict", methods=["POST"])
|
||||
def predict():
|
||||
if knn_model is None or scaler is None:
|
||||
return jsonify({"error": "Model atau Scaler belum dimuat"}), 500
|
||||
|
||||
if "file" not in request.files:
|
||||
return jsonify({"error": "Tidak ada file gambar yang dikirim"}), 400
|
||||
|
||||
file = request.files["file"]
|
||||
|
||||
if file.filename == "":
|
||||
return jsonify({"error": "Nama file kosong"}), 400
|
||||
|
||||
# Simpan gambar sementara
|
||||
file_path = os.path.join(UPLOAD_FOLDER, file.filename)
|
||||
file.save(file_path)
|
||||
|
||||
# Path hasil setelah background dihapus
|
||||
file_nobg = file_path.replace(".jpg", "_nobg.png")
|
||||
|
||||
# Hapus background & refining
|
||||
remove_background(file_path, file_nobg)
|
||||
refine_segmentation(file_nobg)
|
||||
|
||||
# **Tambahkan visualisasi hasil penghapusan background**
|
||||
try:
|
||||
img = cv2.imread(file_nobg)
|
||||
if img is not None:
|
||||
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
|
||||
plt.axis("off")
|
||||
plt.title("Cek Hasil Segmen Sebelum Ekstraksi Fitur")
|
||||
plt.show()
|
||||
else:
|
||||
print("❌ Gambar hasil penghapusan background tidak ditemukan!")
|
||||
except Exception as e:
|
||||
print(f"❌ Gagal menampilkan gambar: {e}")
|
||||
|
||||
# Ekstraksi fitur
|
||||
try:
|
||||
features = extract_features(file_nobg)
|
||||
print(f"✅ Fitur berhasil diekstraksi: {features}")
|
||||
|
||||
# Normalisasi fitur
|
||||
features_scaled = scaler.transform(features)
|
||||
print(f"✅ Fitur setelah normalisasi: {features_scaled}")
|
||||
|
||||
# Prediksi
|
||||
prediction = knn_model.predict(features_scaled)
|
||||
result = "Segar ✅" if prediction[0] == 1 else "Tidak Segar ❌"
|
||||
return jsonify({"prediction": result})
|
||||
|
||||
except Exception as e:
|
||||
return jsonify({"error": f"Gagal memproses gambar: {str(e)}"}), 500
|
||||
|
||||
if __name__ == "__main__":
|
||||
app.run(host="0.0.0.0", port=5000, debug=True)
|
|
@ -0,0 +1,498 @@
|
|||
Mean_R,Mean_G,Mean_B,Contrast,Homogeneity,Energy,Correlation,Mean_Laplacian,Var_Laplacian,Label
|
||||
69.24825012499107,69.24825012499107,69.24825012499107,194.17001495759033,0.45862106998709107,0.3506279375090816,0.9764662690756172,14.81451324905364,741.6261159913961,2
|
||||
61.804983329364134,61.804983329364134,61.804983329364134,159.89230784546012,0.5533107897646529,0.48015677528723166,0.9837086633753745,12.622995554497102,608.4845498927332,2
|
||||
65.46637077449998,65.46637077449998,65.46637077449998,66.04433797394321,0.5540432403940522,0.4337307233033108,0.9924673204871798,8.129519935730594,304.29166612877117,2
|
||||
72.15406305518582,72.15406305518582,72.15406305518582,36.267775481218386,0.5062850444587442,0.3329132143706329,0.994782856162621,6.912647237367521,181.2778404399696,2
|
||||
79.28580173098884,79.28580173098884,79.28580173098884,17.698631545838968,0.5820043433762943,0.31569187561605294,0.9977124402675919,3.9287300344870766,69.77960198414453,2
|
||||
52.69734086332195,52.69734086332195,52.69734086332195,44.640960952013735,0.5270495526078843,0.2965557894509332,0.989549892994537,7.958778565799842,257.9506724452737,2
|
||||
59.01002795962902,59.01002795962902,59.01002795962902,33.792328165092535,0.558580847629015,0.3835675518020916,0.9935971461379189,6.552945990180032,184.84195990180032,2
|
||||
60.17952941991822,60.17952941991822,60.17952941991822,11.527314211212522,0.6056899323718182,0.36265630578434815,0.9976972376751643,3.801058978446185,62.12004158292328,2
|
||||
57.83625284625285,57.83625284625285,57.83625284625285,21.966946062695683,0.5757923286567519,0.38417679771063357,0.9959478563424443,5.348044748044748,124.54669042669043,2
|
||||
63.57667422074359,63.57667422074359,63.57667422074359,23.160815954779,0.5472652051950967,0.259463374594052,0.9943442303672653,4.563379793286186,87.68117035067998,2
|
||||
63.376637611566366,63.376637611566366,63.376637611566366,97.08179308614089,0.4373643934760514,0.30791502676336047,0.9817810438790224,11.623506446056684,432.6452373982784,2
|
||||
42.90040176703092,42.90040176703092,42.90040176703092,30.671775038047493,0.5391210577770176,0.32889055679597934,0.9882049468599974,6.030022785398744,151.77174982540055,2
|
||||
59.607649167193756,59.607649167193756,59.607649167193756,16.882147499198194,0.5737767784473654,0.3493609345999877,0.9963971548962546,4.6678659076533835,89.89170904408613,2
|
||||
40.74000149521531,40.74000149521531,40.74000149521531,29.511655711886156,0.5020194196816912,0.21010938552687858,0.983903590998612,6.550334180622009,165.4041214944796,2
|
||||
50.83894908160893,50.83894908160893,50.83894908160893,29.474508769820797,0.5560495213032581,0.37098408008147726,0.9923350756229949,6.049605518096567,158.79678834310164,2
|
||||
74.74709804273198,74.74709804273198,74.74709804273198,13.136269068068193,0.5329022113566405,0.21041746239298073,0.9972988631526012,4.151719014192755,59.278861899879786,2
|
||||
49.889819162436545,49.889819162436545,49.889819162436545,41.917695342528425,0.5285014077911433,0.3880952900889491,0.9900656529250483,7.028094331641286,195.95706428661663,2
|
||||
70.8293252890775,70.8293252890775,70.8293252890775,16.745771797722902,0.6175254324029896,0.39108932346990194,0.9979697457062081,3.5045438447152097,66.98263981658103,2
|
||||
78.35525246346339,78.35525246346339,78.35525246346339,96.48566770355819,0.4092015335354535,0.2701611469940676,0.9847490372996424,11.946427445614669,485.62958753620455,2
|
||||
59.362039141414144,59.362039141414144,59.362039141414144,42.741518598772124,0.5257220462888837,0.29243327565231897,0.9921651843547372,7.197513528138528,209.0363158365822,2
|
||||
61.19825272042567,61.19825272042567,61.19825272042567,47.9757154559628,0.509792099660762,0.33900805607499546,0.991820006898833,7.999608053931779,238.87239673701248,2
|
||||
80.45138256430666,80.45138256430666,80.45138256430666,39.747382063443986,0.5210934436439223,0.32987613564800317,0.9946649887577002,6.202798420363837,148.26320185096125,2
|
||||
63.441372227656224,63.441372227656224,63.441372227656224,33.4494502365516,0.5218670910085904,0.3052126474957635,0.9940544354356587,5.747965166955143,138.6368292008682,2
|
||||
64.41165837161817,64.41165837161817,64.41165837161817,23.48085034479765,0.5490119515232006,0.32454810571113846,0.9954491730426279,5.370994555045091,124.0000757187911,2
|
||||
70.43501532887839,70.43501532887839,70.43501532887839,34.16549794168953,0.5082000054480149,0.2467333546002706,0.9937204271072287,6.274628641849876,167.3561628048526,2
|
||||
49.472466610312765,49.472466610312765,49.472466610312765,34.48629915219341,0.5459855537338847,0.3891455636261575,0.9913862025202953,6.807619047619047,189.48637925403526,2
|
||||
48.01703985669503,48.01703985669503,48.01703985669503,12.62593965298223,0.6310780640398588,0.3274085817326631,0.9957003555946067,3.231038961038961,48.37258247125044,2
|
||||
52.326342857142855,52.326342857142855,52.326342857142855,44.87541317200605,0.5294373561997354,0.3861072143522248,0.9902631139253325,7.960056043956044,247.8915307644379,2
|
||||
47.087264996907855,47.087264996907855,47.087264996907855,27.58053137068252,0.5707611511866095,0.346543969187417,0.9910408794507831,5.28382807668522,124.46045454484258,2
|
||||
63.03136288685946,63.03136288685946,63.03136288685946,35.87275911964055,0.5333654572952943,0.3324529126247942,0.9941666996980918,6.574810375443937,175.92107115670524,2
|
||||
47.66276207046542,47.66276207046542,47.66276207046542,24.28392467833033,0.6102793237127739,0.4201199038425965,0.9954808611824797,5.355490793098449,139.47427576949968,2
|
||||
41.01694598155468,41.01694598155468,41.01694598155468,6.756260872202903,0.6974163529075493,0.5068699897276037,0.9983342726752666,2.3477101449275364,26.345122529644268,2
|
||||
75.36178901292227,75.36178901292227,75.36178901292227,24.860634864753855,0.5465259660060928,0.3677747120926451,0.9969666735090553,5.711428990303055,126.90124615159067,2
|
||||
55.95859630935102,55.95859630935102,55.95859630935102,23.1490169800948,0.5864329721018431,0.41779979842336007,0.9960630042308556,5.247176031515655,122.08952228900266,2
|
||||
55.04656668863986,55.04656668863986,55.04656668863986,16.300843544793622,0.5606326348767169,0.3303360465802619,0.9957213007214797,4.49383560389658,82.10744799127764,2
|
||||
84.39108639936025,84.39108639936025,84.39108639936025,5.605457333573877,0.6356445021807677,0.28448092990592744,0.9992189054789731,2.5188566390707856,23.979886469980695,2
|
||||
69.48291276313236,69.48291276313236,69.48291276313236,48.74381260537826,0.535615478134044,0.3753170820837319,0.9935270542698788,7.096235663079677,210.3968725939751,2
|
||||
52.60312790819196,52.60312790819196,52.60312790819196,45.117518877134266,0.5673560663608197,0.44079844543616836,0.992331901194806,6.975215983796239,208.61701258080686,2
|
||||
44.4624634608103,44.4624634608103,44.4624634608103,18.902581285866983,0.6440011182882965,0.4489246870247909,0.9959189461564012,3.9693070806512685,81.31841878076486,2
|
||||
60.559986202818564,60.559986202818564,60.559986202818564,47.38442422328371,0.5025418873788112,0.3537359779482777,0.9914171528037723,7.9710062087316444,230.0816004401641,2
|
||||
57.22068518922456,57.22068518922456,57.22068518922456,3.47955874048998,0.6978318929575077,0.454487909631425,0.9995026385770465,2.0230881230232303,15.833084305813065,2
|
||||
56.26952837353198,56.26952837353198,56.26952837353198,51.683155731522454,0.5372880941917383,0.4211853668799239,0.9916195125187477,7.795921762952884,233.38976025768326,2
|
||||
63.565270446382584,63.565270446382584,63.565270446382584,50.88103919465874,0.47823739404022053,0.2826975989051927,0.9892140077202443,8.046515325928768,250.88800854155951,2
|
||||
58.700365143369176,58.700365143369176,58.700365143369176,38.1009115678294,0.5562297702097033,0.361866185300698,0.992657536856025,6.433790322580645,185.36665769146,2
|
||||
65.42477137172067,65.42477137172067,65.42477137172067,24.68658580245854,0.5557399432365503,0.3447950461423967,0.9959136704408073,5.285036732453453,120.36492491778694,2
|
||||
47.17981535055722,47.17981535055722,47.17981535055722,41.403292587147845,0.5589449602845029,0.4189890477190922,0.9904997351968367,6.933171492541068,209.13256471535286,2
|
||||
69.48168582704187,69.48168582704187,69.48168582704187,1.6017632003847606,0.7184179247304577,0.17255687822177793,0.9995860037274801,1.5068359643102265,5.566271442219275,2
|
||||
54.27651734514279,54.27651734514279,54.27651734514279,64.39156894827744,0.5340055637653159,0.3878481220137922,0.9872834231998154,8.848918412536195,327.2861863388928,2
|
||||
45.67689043478261,45.67689043478261,45.67689043478261,48.692048780487816,0.563008358452465,0.4380912372819437,0.9880999958852015,7.092768695652174,201.09761023345487,2
|
||||
54.79451436067333,54.79451436067333,54.79451436067333,19.20407122721013,0.5587330212590279,0.3235386908596641,0.9950945418782648,4.595870366988774,84.37435041256447,2
|
||||
65.61419729132648,65.61419729132648,65.61419729132648,28.46188867104909,0.5461389338026691,0.34573135420062245,0.995204295297083,5.719129382384017,145.74918451637447,2
|
||||
66.24455405599778,66.24455405599778,66.24455405599778,24.456960249612443,0.5514850668009426,0.3236460764994283,0.995977461543874,4.956405785712532,108.08633593758222,2
|
||||
63.65959563884185,63.65959563884185,63.65959563884185,73.8169650928937,0.48790894803554624,0.3510960386031257,0.987210626737312,9.55302784473432,343.1889638323493,2
|
||||
49.46988936915249,49.46988936915249,49.46988936915249,37.87802312341245,0.5503016866590178,0.404374662105724,0.9907361407078878,7.267685506374131,225.2340064562018,2
|
||||
62.54946269937412,62.54946269937412,62.54946269937412,20.967987598590195,0.5720016590496139,0.36923388597074225,0.9961913206711244,5.429152533817888,130.53744195437108,2
|
||||
50.45851035347062,50.45851035347062,50.45851035347062,29.657242593837985,0.5943928711508549,0.41484580646304636,0.9937325725869767,5.679167734768862,155.71691930843943,2
|
||||
50.399104938271606,50.399104938271606,50.399104938271606,17.00744405378439,0.624751177619474,0.45026579016181034,0.9964180562434074,4.307447768281102,91.66760208773414,2
|
||||
52.34661382367746,52.34661382367746,52.34661382367746,77.88783471721834,0.5355673747481229,0.4151874246866761,0.9864416408743122,8.855862357557417,324.14187250971855,2
|
||||
55.73890770051885,55.73890770051885,55.73890770051885,25.281459795568566,0.5855005629067634,0.39827573025174945,0.9955477843833862,4.40375507632772,87.69204424295377,2
|
||||
47.72060921717172,47.72060921717172,47.72060921717172,27.43364158012045,0.5160212882863543,0.33020936110302596,0.9912639416863911,6.315609217171717,144.12477930224549,2
|
||||
46.14572583394205,46.14572583394205,46.14572583394205,34.5400394804182,0.570349534157965,0.4063194569962029,0.9909401319155323,6.4363389335281225,178.71328853175123,2
|
||||
41.73766207218783,41.73766207218783,41.73766207218783,16.743924818182936,0.6108949133437153,0.342661533232976,0.994721122855687,4.035419958317708,79.55433835398583,2
|
||||
55.36102847242715,55.36102847242715,55.36102847242715,18.620262732786735,0.5484274551681152,0.25915182529595465,0.9945668413894163,4.957792268369999,103.2990037028853,2
|
||||
60.152556920013275,60.152556920013275,60.152556920013275,5.624790953473521,0.6765158737094937,0.3020397145747695,0.9987584692005752,2.3669538665781613,23.792455802633036,2
|
||||
62.450692983624016,62.450692983624016,62.450692983624016,43.54059915016052,0.5061500509071492,0.33232182366734375,0.9919076376174102,7.956382305951271,238.44652609506025,2
|
||||
70.92765970170255,70.92765970170255,70.92765970170255,33.68931686877806,0.5071598589768965,0.2681852271328303,0.9945221376112561,6.900008442380751,184.28698042182108,2
|
||||
53.99482159509203,53.99482159509203,53.99482159509203,24.431130755064455,0.5228358897186721,0.27603750436274316,0.9929619013822112,5.615558282208589,127.3431950029791,2
|
||||
58.32067288770393,58.32067288770393,58.32067288770393,49.546014280995095,0.5311714634809981,0.37764743029203496,0.9912176956287132,7.5130332846653545,239.19889375568675,2
|
||||
45.34910785694171,45.34910785694171,45.34910785694171,61.05058351064579,0.6152441111894114,0.362925320707457,0.9888107400558913,7.469274007321881,305.81095466064744,2
|
||||
60.7763178482124,60.7763178482124,60.7763178482124,31.966497127009724,0.5437604913223913,0.35793590327035096,0.9942893469021751,6.0319172362637525,151.39681608341203,2
|
||||
63.141693084419394,63.141693084419394,63.141693084419394,35.57644043308731,0.5718372372332857,0.42976278857817646,0.9952455577956374,6.198948508212333,170.1337316652099,2
|
||||
69.71959790014975,69.71959790014975,69.71959790014975,37.167227592377664,0.5175820891278414,0.3016948917731406,0.9941114658022514,6.44159468759088,178.6026989427946,2
|
||||
73.57739379079611,73.57739379079611,73.57739379079611,17.382513753804712,0.5414551035642327,0.2842001851246832,0.9973259236824903,4.478296249434563,79.3597883843311,2
|
||||
57.21551988248698,57.21551988248698,57.21551988248698,36.127264216595975,0.5469373635555799,0.33861039637726525,0.9929001575278686,6.421835047892848,180.68739111472195,2
|
||||
60.44042505417791,60.44042505417791,60.44042505417791,41.40471913806854,0.5528353396736521,0.36956000432032293,0.9931848597967688,6.758326047241094,204.07269127267904,2
|
||||
63.83228167760596,63.83228167760596,63.83228167760596,19.132517488355013,0.5634023505137727,0.3063981931698244,0.9967423475252787,5.060109392961768,103.38308191481742,2
|
||||
60.380094149999735,60.380094149999735,60.380094149999735,39.246260485038796,0.4945388826145722,0.3089417926828269,0.9917970109760025,7.226291676069422,192.52885744618516,2
|
||||
66.49993895240014,66.49993895240014,66.49993895240014,33.135750429360165,0.5130017172179986,0.3388705969699821,0.9947219513365333,6.798325222449391,173.16766433903496,2
|
||||
44.3951325737176,44.3951325737176,44.3951325737176,22.133110005055524,0.6170943502602486,0.334511590941116,0.9926972691879057,4.477369567670427,112.82057572547907,2
|
||||
64.6111797212949,64.6111797212949,64.6111797212949,18.82531830745707,0.5717981792094906,0.33814760598253796,0.996853487599053,4.631823264411322,93.61153015973073,2
|
||||
54.28239851828986,54.28239851828986,54.28239851828986,19.925730235240803,0.5446758130026544,0.3541570815109181,0.9955020872436997,4.8208859391881465,86.7023676493286,2
|
||||
58.57127075653023,58.57127075653023,58.57127075653023,47.63984020532418,0.5122833015171153,0.34805190953003334,0.9909311271263326,8.451353940195986,277.19850710415596,2
|
||||
58.459195833652444,58.459195833652444,58.459195833652444,51.12346875159692,0.4664746696988455,0.2959445437885706,0.9878182176540304,9.339193791325215,295.7367323477928,2
|
||||
55.59874278171919,55.59874278171919,55.59874278171919,47.247297001622414,0.5106359028163133,0.3736711002078661,0.9901289311092338,8.329397789143705,262.0786090038195,2
|
||||
61.65340015524282,61.65340015524282,61.65340015524282,14.399238473524457,0.5671539767417462,0.3370058338418117,0.996817448514194,4.397580236914043,74.37968005431735,2
|
||||
59.86138692797625,59.86138692797625,59.86138692797625,49.22603919186867,0.5236579293883742,0.39432834095255054,0.9918848389279404,7.687452439811634,219.33921220337166,2
|
||||
53.18573690966376,53.18573690966376,53.18573690966376,34.57584681294042,0.5353753039643875,0.3434295391090244,0.9914571180006491,6.572917465450848,177.2241598835265,2
|
||||
50.673390242896616,50.673390242896616,50.673390242896616,41.29074544081416,0.5774651354556741,0.4374777686549459,0.9929578476556086,7.195725184543693,227.87049280382627,2
|
||||
53.49724391624222,53.49724391624222,53.49724391624222,38.234288467533936,0.4971359612871023,0.2927090766117748,0.99000069944386,6.924637804187889,167.1497933329602,2
|
||||
55.387139849305456,55.387139849305456,55.387139849305456,23.643080004663144,0.5688357031616259,0.36916035451511403,0.9948562398499863,5.6346126037845785,135.6627085291422,2
|
||||
57.90788798178063,57.90788798178063,57.90788798178063,36.77574325015884,0.5312969567307887,0.36431696865668844,0.9927403225755002,7.136588886958871,207.728408663863,2
|
||||
58.4681512345679,58.4681512345679,58.4681512345679,98.80697861169021,0.5219854190378483,0.40371928180926264,0.9842563505714776,11.746591049382715,622.7537021604938,2
|
||||
36.923000599520385,36.923000599520385,36.923000599520385,43.84541601338325,0.6239304948174931,0.4739932814603555,0.9867642667720957,6.045483363309352,238.6182156774575,2
|
||||
33.47644475214622,33.47644475214622,33.47644475214622,18.501047158149152,0.681018952113201,0.49519154255671294,0.9936685101996919,3.7315336471891443,91.42555081691737,2
|
||||
49.0836458110135,49.0836458110135,49.0836458110135,82.0344472409068,0.601353068637959,0.5141300085906059,0.9887574704713986,8.505713877580172,303.83117112054816,2
|
||||
59.22621921391154,59.22621921391154,59.22621921391154,62.74169614828226,0.5272646413789399,0.3132928692183569,0.9907033560592731,8.242070408236009,272.0972273776424,2
|
||||
63.52884867558353,63.52884867558353,63.52884867558353,16.342820697390227,0.5973417512870801,0.3233001462165353,0.9974654894433459,3.7248510733955267,65.87330667903916,2
|
||||
82.81797247772808,82.81797247772808,82.81797247772808,46.513966885103414,0.45331194047363726,0.27648819420247,0.9933331757309499,7.76888697821118,205.46755002117268,2
|
||||
59.77289273927393,59.77289273927393,59.77289273927393,24.582923203963666,0.6269065799587468,0.44697216918185484,0.9965521612400782,4.219987898789879,91.06435313531352,2
|
||||
45.372200329912026,45.372200329912026,45.372200329912026,26.202049706529717,0.6122779108654253,0.38213981833434707,0.9941921818213342,4.972253940615836,124.03259210042955,2
|
||||
50.62610178841477,50.62610178841477,50.62610178841477,88.72791745459624,0.6162680840734551,0.5271838235478381,0.988135229627091,7.9892929722052255,313.21245327643385,2
|
||||
57.09689229719477,57.09689229719477,57.09689229719477,41.71034202729151,0.5278664841049341,0.3791261132082485,0.9917230123318554,6.798270047135784,176.51386320847584,2
|
||||
46.41948848601076,46.41948848601076,46.41948848601076,13.023889254765388,0.6186173083193479,0.44533882239695083,0.9967802849549705,3.997933577141498,66.63442712514495,2
|
||||
52.45725140246645,52.45725140246645,52.45725140246645,31.891117899521518,0.5649507268634341,0.41304877558447345,0.9939506870853142,5.779663644755841,142.100988202199,2
|
||||
45.61044041344936,45.61044041344936,45.61044041344936,17.392107542984483,0.6599305913361383,0.4594071296648061,0.996798465596393,3.7712214527924175,75.20904701352123,2
|
||||
38.811072792753464,38.811072792753464,38.811072792753464,24.330915409076503,0.6568947699892026,0.549582754605762,0.9945377510975968,4.981896758703481,119.084588017025,2
|
||||
63.62482955952707,63.62482955952707,63.62482955952707,35.33516450898463,0.5471260716766596,0.3163971555912255,0.9944514139393935,6.195646109525113,163.9969561871777,2
|
||||
73.91320315812774,73.91320315812774,73.91320315812774,4.098721878935349,0.6886585867170869,0.2501622192468898,0.9994171943831724,2.0220338214625744,18.341152201909914,2
|
||||
63.89099276791585,63.89099276791585,63.89099276791585,56.48265982467394,0.5140445422753755,0.38749624714118225,0.9914166766889749,8.709664694280079,287.680164365549,2
|
||||
56.2401083912342,56.2401083912342,56.2401083912342,33.56810594291479,0.5150631631564824,0.22669973239465235,0.992337397085466,6.165500572446254,146.5466891997378,2
|
||||
59.31255532759141,59.31255532759141,59.31255532759141,25.89059854159191,0.547639465431128,0.3558596206117223,0.9952506271125501,5.176475489226091,105.89038974046542,2
|
||||
60.114640983704334,60.114640983704334,60.114640983704334,24.322997669017198,0.6264869933370529,0.48150006024195297,0.9972312671028206,4.685101705326097,113.71396259939516,2
|
||||
42.30166536553022,42.30166536553022,42.30166536553022,25.823077581869374,0.5495237865759053,0.31492776572182046,0.9906737978541621,5.702156499978612,127.85641335339875,2
|
||||
64.0304664723032,64.0304664723032,64.0304664723032,14.391214580539542,0.6176491618067532,0.3964240690678719,0.9980678657208109,3.8411740133153476,68.9630729733258,2
|
||||
74.40044136986212,74.40044136986212,74.40044136986212,141.71953211805445,0.38850439971920947,0.25203332570617837,0.9765253919042614,13.980726418538827,615.336730918678,2
|
||||
74.50700130947185,74.50700130947185,74.50700130947185,49.838837016212445,0.4459544526467622,0.30450570158900947,0.9927361465127237,8.888838934962898,242.79346864449064,2
|
||||
49.859627585974145,49.859627585974145,49.859627585974145,13.527029048963401,0.6555283373018677,0.2956462139942834,0.9973297096998067,3.384054893711166,64.56567211890378,2
|
||||
43.05809049708864,43.05809049708864,43.05809049708864,27.819580082728127,0.6038574715467246,0.4540281486828825,0.9925125806591463,5.38188660579404,141.16761625695287,2
|
||||
46.87413374420124,46.87413374420124,46.87413374420124,15.356991989486206,0.5833793984916059,0.3725043051495233,0.9954423988464448,4.298861739601302,73.02577414546232,2
|
||||
72.32353438401074,72.32353438401074,72.32353438401074,2.9837616515396723,0.7033977378883911,0.3547731277868162,0.9995766181559784,1.6240462930047004,8.758852154678674,2
|
||||
54.181708435136706,54.181708435136706,54.181708435136706,13.980163203538796,0.6445535517062593,0.4476682186737178,0.9979443630863609,3.89883048283886,76.89465317044794,2
|
||||
56.28508370205451,56.28508370205451,56.28508370205451,12.139024854708572,0.6161596170689354,0.3767694135567704,0.9974634585961256,3.4169543631222465,50.0546587714674,2
|
||||
49.43652663624692,49.43652663624692,49.43652663624692,7.248024832206405,0.6245401701574502,0.37153144557640266,0.9981700278772754,2.772773021975482,27.482711957224254,2
|
||||
62.88621164981419,62.88621164981419,62.88621164981419,53.69209789000346,0.5078796617207756,0.35816565481892915,0.9906000399356197,8.165337481635122,262.84639011321366,2
|
||||
77.4165747132336,77.4165747132336,77.4165747132336,72.66277579193884,0.42514042705601013,0.27748973465175625,0.9889359097813586,10.199176781544304,341.38125279067975,2
|
||||
57.907279366845444,57.907279366845444,57.907279366845444,10.267366590706748,0.6030373911717783,0.3542496452180686,0.9976532161536826,3.1111576713154623,36.558335520857604,2
|
||||
61.15626842751843,61.15626842751843,61.15626842751843,63.403500356458046,0.5086902876047615,0.3465101095657435,0.9889570284670186,9.087033783783784,329.59867506142376,2
|
||||
55.659311991568686,55.659311991568686,55.659311991568686,28.59534264496772,0.591598497605914,0.3823988430938671,0.9947359101201104,5.293124197213714,141.13138392121982,2
|
||||
57.673618923697994,57.673618923697994,57.673618923697994,14.354512301573395,0.5979440379799184,0.39243612242218956,0.9975854778062433,4.530714309545258,89.52585593700998,2
|
||||
88.87637002205967,88.87637002205967,88.87637002205967,55.17885026489451,0.495527224598784,0.3536832992927954,0.994910786176148,8.601081504702194,273.2485504467882,2
|
||||
69.24339884021697,69.24339884021697,69.24339884021697,21.75671154519175,0.566602165860868,0.3648551319712932,0.9970030987567714,4.261140799088056,75.87007373846546,2
|
||||
68.2876489161973,68.2876489161973,68.2876489161973,12.186396436320232,0.5781944892568134,0.2907738386265095,0.997880441143844,3.761811173692894,59.305310631219314,2
|
||||
63.52255120914005,63.52255120914005,63.52255120914005,32.62704850558071,0.58543988643912,0.43700584958528177,0.9957710721691421,5.572605182196592,141.6118351752917,2
|
||||
68.64812834890965,68.64812834890965,68.64812834890965,25.105489423183602,0.5505660457658773,0.36958825985531807,0.9968296794384449,6.382003489096573,164.02868461059182,2
|
||||
42.51592845002235,42.51592845002235,42.51592845002235,27.637578674564985,0.6212683879511033,0.47948567881568116,0.9932794702198949,4.804929636432244,112.3483260310946,2
|
||||
59.70587273073354,59.70587273073354,59.70587273073354,43.81833927039648,0.4556720641681482,0.2791708275226803,0.9886495377763671,7.51844262295082,182.85281888496877,2
|
||||
80.61268518518519,80.61268518518519,80.61268518518519,49.46584611926038,0.4651253841270964,0.2956940783813804,0.9943139446617769,8.476610549943883,226.6608050545359,2
|
||||
54.82490908313011,54.82490908313011,54.82490908313011,105.79669802429787,0.5163958458454412,0.41978779635980595,0.9832007226099296,11.49404013177598,509.10430839002265,2
|
||||
59.04781467295978,59.04781467295978,59.04781467295978,60.87115229354393,0.5710366526251626,0.4596667081968259,0.9922696561217994,8.488934920976961,307.7384465760849,2
|
||||
49.58280464875919,49.58280464875919,49.58280464875919,43.03332558149136,0.5285771333345215,0.346347144127513,0.9879112828939203,6.319378167984255,164.10920818101926,2
|
||||
49.972358785257576,49.972358785257576,49.972358785257576,76.67877093124763,0.49944205027409855,0.3686531126681686,0.9815525248828145,10.12665586885838,387.506882225861,2
|
||||
47.269071941182894,47.269071941182894,47.269071941182894,37.014174444481355,0.5435489454479809,0.40680500115146717,0.990776670320814,6.985910936547371,191.80059916840605,2
|
||||
62.05966700201207,62.05966700201207,62.05966700201207,37.035037260825774,0.5632179041092308,0.4158071311515536,0.9947070519914983,5.639422535211268,136.0268269617706,2
|
||||
38.98713816717382,38.98713816717382,38.98713816717382,26.574505657677797,0.6199027717516661,0.46001594260652295,0.9919751301308298,4.462593852968184,97.60013984167281,2
|
||||
44.21838741167119,44.21838741167119,44.21838741167119,32.63813971095358,0.5891322169755493,0.4382201993306838,0.9924103526774132,6.302566811410697,168.55886979746404,2
|
||||
68.38669952593786,68.38669952593786,68.38669952593786,16.680447506574048,0.5800465434237129,0.36217784470807357,0.9974099481444884,3.663159836883465,50.35908230004858,2
|
||||
40.3669703073485,40.3669703073485,40.3669703073485,34.959296428467525,0.6319540798766373,0.515559763616704,0.9915379042112763,5.263311587449518,135.42106444598102,2
|
||||
60.160914367518764,60.160914367518764,60.160914367518764,63.477330665796394,0.5013212641397651,0.3359626718955957,0.9871137518395383,8.263431677568867,264.62005042649747,2
|
||||
55.653950867418004,55.653950867418004,55.653950867418004,77.47576318060914,0.5210587055623807,0.39659308833375545,0.9861492197148555,8.471729770799037,283.1766879529082,2
|
||||
39.597963726725226,39.597963726725226,39.597963726725226,66.6186103982511,0.5598754028980611,0.4311678455593248,0.979338175397312,7.828739063659425,268.8141882745447,2
|
||||
46.72847073109331,46.72847073109331,46.72847073109331,38.32450738642346,0.5607429065784988,0.40895315452607583,0.9900497226911115,6.366997882391269,167.2501206888892,2
|
||||
63.69630141947814,63.69630141947814,63.69630141947814,34.71799113486459,0.5354293830379604,0.37401452698321025,0.9946199446825131,6.5829579782069265,167.4680067978928,2
|
||||
55.30301789020768,55.30301789020768,55.30301789020768,35.653304294845675,0.5594440082492981,0.3533518459681142,0.9924818460996367,6.11374035886984,159.46526195456144,2
|
||||
56.69066054498528,56.69066054498528,56.69066054498528,5.337175301714308,0.6988726774792359,0.3956168045755936,0.9989698622952543,1.614279311800809,8.899449077496625,2
|
||||
45.47901566976096,45.47901566976096,45.47901566976096,52.41120783187313,0.5411794310874074,0.41062041459760584,0.9857355318236914,7.699145285765721,245.95176186972404,2
|
||||
48.22162059294872,48.22162059294872,48.22162059294872,47.31232550303264,0.5989056615690533,0.4133058828116983,0.9899976544362284,5.901764823717949,211.17609575316905,2
|
||||
52.42766811105761,52.42766811105761,52.42766811105761,11.436297864358641,0.6401814033468451,0.4590686800056867,0.997986303611329,3.292898411169957,45.89408050442856,2
|
||||
56.64276411917921,56.64276411917921,56.64276411917921,14.286247025017708,0.5546112396021061,0.22336557226756004,0.9965820940816956,3.8285567943586813,50.565254015011426,2
|
||||
62.75681601288963,62.75681601288963,62.75681601288963,20.1288238651875,0.546835268721695,0.28441917056158683,0.9947794458760074,4.490493896015368,78.36188984798544,2
|
||||
51.56236908037951,51.56236908037951,51.56236908037951,24.466729753390336,0.5657115729081635,0.30201554909607264,0.9948474919595577,5.02846346572473,95.39685929768173,2
|
||||
49.60751691866581,49.60751691866581,49.60751691866581,18.952749404019514,0.6035094651049437,0.3918023955581274,0.9953836019332925,4.151727825153021,77.92757817440854,2
|
||||
45.40779231317634,45.40779231317634,45.40779231317634,50.00530583235426,0.5912691593078949,0.45269909554688964,0.9886953184476568,6.78981601160771,228.16531230216142,2
|
||||
39.6640750129378,39.6640750129378,39.6640750129378,34.73901646256831,0.5677352309561225,0.43172793629748346,0.9882970717688909,6.035860955906216,150.70242353539695,2
|
||||
40.5307029895335,40.5307029895335,40.5307029895335,17.48701732820741,0.5988782204495657,0.41446754197242536,0.9938765708119407,4.535847243403597,91.58639396661583,2
|
||||
86.38200079619979,86.38200079619979,86.38200079619979,37.404118866951976,0.42754561517347034,0.22833456380869263,0.9946187358603025,7.877440606788052,190.96501060686694,2
|
||||
68.00156890378494,68.00156890378494,68.00156890378494,137.62801874849293,0.437127142406361,0.3249177077290277,0.9804362981593522,12.58838183082941,522.9631224704606,2
|
||||
62.871111601417596,62.871111601417596,62.871111601417596,109.55782842934109,0.44967484440484884,0.35575692658751373,0.9814879090904933,11.468025428520209,408.7070893721472,2
|
||||
61.45894572432643,61.45894572432643,61.45894572432643,49.18577969756282,0.481635152833658,0.3245188295260148,0.9903127088374275,8.289002875297292,241.14749281174426,2
|
||||
63.73765737695459,63.73765737695459,63.73765737695459,32.8848253836247,0.5038364743118258,0.3327603826750017,0.9937207455077292,6.490504875656338,152.37619630590152,2
|
||||
71.35531844499586,71.35531844499586,71.35531844499586,72.15959445410468,0.543411008615035,0.4382752371812958,0.9927515604945182,8.4837239224336,295.0234592408786,2
|
||||
65.23108435769193,65.23108435769193,65.23108435769193,17.652252558762655,0.5606454305661231,0.3340511355269656,0.9968648666972583,4.3904466016218935,79.1351120879538,2
|
||||
52.93077248677249,52.93077248677249,52.93077248677249,59.42266684322034,0.47438836015536695,0.32816987584480667,0.9846765667590468,9.097115079365079,288.18728174183076,2
|
||||
43.350786430081826,43.350786430081826,43.350786430081826,18.755238137289535,0.5927240973621369,0.31749590641576547,0.9927564723967371,4.597046244368852,96.59069522846373,2
|
||||
45.376728707436314,45.376728707436314,45.376728707436314,8.683324743153625,0.6893663275620954,0.5074437090339786,0.9982138256099531,2.4529170597821426,27.309203190668153,2
|
||||
52.50344450264827,52.50344450264827,52.50344450264827,8.41662674894961,0.6065744625586651,0.34952254976537717,0.9977597807235876,2.7872091263605143,27.827295267979864,2
|
||||
58.0019480994152,58.0019480994152,58.0019480994152,17.346872560499616,0.5635252627576592,0.3633330135755303,0.9962977058831517,4.709002192982456,83.6236342547692,2
|
||||
64.41470769230769,64.41470769230769,64.41470769230769,103.74234142581889,0.4531962137217742,0.3511399350268973,0.9819940739037237,11.852738461538461,441.00203030263674,2
|
||||
49.881399601063826,49.881399601063826,49.881399601063826,84.0091639634047,0.5449967972655826,0.4507184453413777,0.9841066427648967,9.978447624516441,385.8197189475971,2
|
||||
47.24410440333054,47.24410440333054,47.24410440333054,40.05040697996346,0.5560636072074215,0.4235935576692818,0.9905850932855429,6.8507544278198225,187.21535714849983,2
|
||||
71.73257743753443,71.73257743753443,71.73257743753443,65.24985191118562,0.4620454254203565,0.29651933066511943,0.9884761305057944,8.935498735857852,280.57848373630526,2
|
||||
65.30062610301883,65.30062610301883,65.30062610301883,26.969565116099858,0.4999719567758179,0.3021094713458869,0.9942223131605721,6.048874697061361,122.70013635214042,2
|
||||
66.8642381146665,66.8642381146665,66.8642381146665,9.683907173980705,0.6362743329222259,0.41431201461300254,0.9987096886207537,2.426735443259311,21.975257911373124,2
|
||||
56.16242952046,56.16242952046,56.16242952046,66.62370987474885,0.45462489804756606,0.3131064029574701,0.984031512190721,9.41481446036797,297.44460607163387,2
|
||||
77.97811507936508,77.97811507936508,77.97811507936508,105.66892106757525,0.4083985983094912,0.30703003052011274,0.9852123146336288,12.496298185941043,453.29755014548317,2
|
||||
59.04524121537196,59.04524121537196,59.04524121537196,108.60233087415419,0.5054524971105121,0.3520400582077642,0.9851965739572051,11.525010412539745,468.92059549504285,2
|
||||
73.73035940191644,73.73035940191644,73.73035940191644,67.59964149010727,0.4345663142550906,0.3003912294519103,0.9898212869433269,8.776606912144702,237.15312769164512,2
|
||||
52.13080593702317,52.13080593702317,52.13080593702317,8.391225121873308,0.6119862694184354,0.3342396002797041,0.9974778236989738,2.868589263420724,28.08896656956582,2
|
||||
55.570885223233674,55.570885223233674,55.570885223233674,3.766977526534871,0.6698207710233269,0.3495558504605183,0.9990333650414213,1.9104991180563557,11.78261285776332,2
|
||||
53.77709324412917,53.77709324412917,53.77709324412917,58.67227546338521,0.5135620031536491,0.363608699408545,0.9863322531478768,7.999784273843344,239.88294330151697,2
|
||||
62.13017493672635,62.13017493672635,62.13017493672635,38.72758227055497,0.5329436196102331,0.39439059101755375,0.9937798197028819,7.2820583876052725,201.92792848661483,2
|
||||
41.83864073177128,41.83864073177128,41.83864073177128,37.497628927089494,0.5670990204994802,0.29458673407492086,0.9837659003094951,6.106256150796711,171.57221243553522,2
|
||||
40.92948557407564,40.92948557407564,40.92948557407564,14.247832585949178,0.6126521954285526,0.3511054652917354,0.9949551387631193,3.7417818766393096,59.5712496826885,2
|
||||
66.49624002716007,66.49624002716007,66.49624002716007,28.755528355773155,0.48707831159825843,0.29822163803788077,0.9943143919515499,6.540643354269224,134.2933472798935,2
|
||||
69.76025389025389,69.76025389025389,69.76025389025389,32.02330722224501,0.5277606523316238,0.3752769330492401,0.9956935906027683,5.79970515970516,116.51232149503201,2
|
||||
74.26145718050066,74.26145718050066,74.26145718050066,23.467762202687368,0.5210284457921244,0.29799644448025636,0.9966623349970108,4.7173175230566535,74.84306819592383,2
|
||||
65.19862516413069,65.19862516413069,65.19862516413069,53.04759166067578,0.46260214242954356,0.31586318996869966,0.9905056653934089,8.850795551092917,265.5138741912238,2
|
||||
71.88559928855088,71.88559928855088,71.88559928855088,7.902272688890494,0.5748810901643785,0.20390553325629035,0.9979414693626648,2.659223539152701,21.03943781165334,2
|
||||
71.94209836559463,71.94209836559463,71.94209836559463,20.382027260665026,0.5700623703705979,0.3921535008881801,0.997525378566638,4.717270467726143,90.86553488488457,2
|
||||
47.646177467530286,47.646177467530286,47.646177467530286,46.63283762665726,0.4938277174159792,0.34663286322344633,0.985423977333537,7.99797295029701,229.57344363390246,2
|
||||
51.920372030536846,51.920372030536846,51.920372030536846,26.501431217807188,0.5497635944744353,0.364793471597175,0.9935353317694106,5.760711266400529,128.4884976004209,2
|
||||
66.84121356571826,66.84121356571826,66.84121356571826,108.54924800818033,0.49727343237373417,0.38220423256093483,0.9870283354374902,12.175717335943762,548.7625812900488,2
|
||||
57.151969013036904,57.151969013036904,57.151969013036904,31.44311270889015,0.5024554824972797,0.3084020522417382,0.9921376320868025,6.058961209999625,137.18866154190562,2
|
||||
47.81497369486038,47.81497369486038,47.81497369486038,53.469627056496364,0.5866745802076534,0.45411742714693937,0.9893381731492299,6.650000963558228,210.83021718565317,2
|
||||
54.98203658908903,54.98203658908903,54.98203658908903,21.841069075851678,0.5839092921280965,0.40914055366103186,0.995963134989932,4.221260656161198,74.06630848780702,2
|
||||
70.40303528605686,70.40303528605686,70.40303528605686,60.74484336219419,0.459317549293759,0.3113315876606693,0.9895109641680768,8.73231471965285,252.35013757926134,2
|
||||
62.25477593220117,62.25477593220117,62.25477593220117,95.19444324806139,0.5077250295648712,0.2767251627356519,0.9861135765714024,9.82512488741193,394.58852761667595,2
|
||||
56.04628599396858,56.04628599396858,56.04628599396858,58.16894408803728,0.5089281015975076,0.363147838860675,0.9886139764703102,8.936347828201761,303.95518078888085,2
|
||||
62.5992894422436,62.5992894422436,62.5992894422436,3.5616932336128535,0.7384119364382042,0.46450400862722396,0.9995541674749636,1.327004967616173,6.458326101993334,2
|
||||
66.90855378396587,66.90855378396587,66.90855378396587,69.35030478889713,0.44698898481849786,0.2952158756846681,0.9865378511333249,9.43555580507523,289.0848529072996,2
|
||||
65.31470824328497,65.31470824328497,65.31470824328497,66.3597348781594,0.4176405871728093,0.2763912148451175,0.9847553126437824,10.674957291345065,347.2752572156545,2
|
||||
57.404537966537966,57.404537966537966,57.404537966537966,55.28838060856113,0.4772378685768485,0.3252606842434347,0.9868763691264847,8.316069498069497,237.82188132820517,2
|
||||
59.162613937786354,59.162613937786354,59.162613937786354,59.26507240600504,0.38844383717396086,0.22354734576326937,0.9799367443494552,9.993971545695684,293.10394469663777,2
|
||||
42.20791464345501,42.20791464345501,42.20791464345501,2.9506881056364747,0.6948115338317009,0.37560533857518,0.9989099510333294,1.8508026440037773,12.292033544812769,2
|
||||
56.548762718245634,56.548762718245634,56.548762718245634,30.684377031681667,0.5308198518202806,0.3454220595759601,0.9928092561033731,6.242753223568876,153.37518027646,2
|
||||
58.4816552149401,58.4816552149401,58.4816552149401,47.72729369078814,0.4988754285265164,0.33859142117781,0.989751667877472,7.663083973598721,216.30905803640488,2
|
||||
73.91392650483205,73.91392650483205,73.91392650483205,4.9665129885982084,0.6272539441634694,0.30839037693644167,0.999211961535947,2.109963922007575,13.69893263233672,2
|
||||
68.05430431016318,68.05430431016318,68.05430431016318,145.36035234913376,0.43741030193751984,0.34594766647536246,0.9789800568441838,12.590623129124287,491.08323327458015,2
|
||||
48.86528806861018,48.86528806861018,48.86528806861018,34.41599946175066,0.5514142070381799,0.2212553510044598,0.9913333862022,6.279938919274523,171.48241888304716,2
|
||||
35.47047396510245,35.47047396510245,35.47047396510245,23.58341682783779,0.6545484817504975,0.46273949324223773,0.9941512101559756,5.19610073580983,134.25546201159239,2
|
||||
55.836143175814655,55.836143175814655,55.836143175814655,17.128236701861297,0.5664704892494682,0.3395367431879543,0.9958583709081043,4.280710348405719,74.13352923649788,2
|
||||
52.468041457094955,52.468041457094955,52.468041457094955,57.75326344061406,0.4653495460837944,0.3032588524064542,0.9839307376133336,8.732911141594268,267.01778800325127,2
|
||||
51.89928571428572,51.89928571428572,51.89928571428572,99.05719611021067,0.4986454774454112,0.3831588549618128,0.9796425360329397,11.010976286871024,474.0516321476488,2
|
||||
57.028531383756246,57.028531383756246,57.028531383756246,100.34608921779974,0.5451749626886194,0.4066899327645448,0.9855375465053536,9.820183462147803,467.1667811256284,2
|
||||
67.30090583554377,67.30090583554377,67.30090583554377,67.66337638784445,0.46851259663187733,0.31027918187218706,0.98934645083396,10.046868700265252,373.9494230757643,2
|
||||
63.12435256204356,63.12435256204356,63.12435256204356,51.85628802170549,0.5305786622285671,0.34196083842684716,0.9910466527703041,6.649725211694651,211.91708911040195,2
|
||||
78.20064079207921,78.20064079207921,78.20064079207921,49.862901806593804,0.451050012863572,0.27244726639825234,0.99226874994885,8.7485100990099,262.3214811881188,2
|
||||
69.53362795073726,69.53362795073726,69.53362795073726,40.22608645808932,0.49361814890625016,0.31835248477498507,0.9927909359066017,6.992391055445485,177.0677112660715,2
|
||||
49.80762791170786,49.80762791170786,49.80762791170786,34.044264081387425,0.5637795220540387,0.390428306508813,0.991231299572921,5.766520191231818,145.74658730435115,2
|
||||
53.585420817804646,53.585420817804646,53.585420817804646,37.40707031590181,0.5668364425408272,0.43926974856643813,0.9930574540898592,6.55690973015945,182.53228656016924,2
|
||||
53.03059828330019,53.03059828330019,53.03059828330019,58.62380460501208,0.4898274858324084,0.3420409075520921,0.9851074143660259,8.378644734220552,265.913049886585,2
|
||||
69.13074564920059,69.13074564920059,69.13074564920059,28.12921591581386,0.5682119460722589,0.3879486737403562,0.9965630612449895,5.344848684934522,125.35659796569668,2
|
||||
60.65248468912262,60.65248468912262,60.65248468912262,54.054250133750976,0.5157984819569236,0.36883606087842696,0.9904200732940098,7.860055252296632,248.10443939065752,2
|
||||
48.67431779322137,48.67431779322137,48.67431779322137,53.81783264083486,0.5486495192467652,0.43475967367524376,0.988299762286661,7.831816552218637,270.14723290863463,2
|
||||
54.12499587912088,54.12499587912088,54.12499587912088,64.0880134161764,0.4943511809359299,0.3280845451323637,0.9857136293736668,9.422227335164836,349.8115487637357,2
|
||||
51.19787468208092,51.19787468208092,51.19787468208092,21.817870481356184,0.5810721170608051,0.3840381577973248,0.9943562994873156,5.1967223121387285,115.63969479768787,2
|
||||
74.40775510329205,74.40775510329205,74.40775510329205,6.618430903289151,0.5213215372002996,0.1944491436187374,0.9980632708173222,2.769109564055167,17.083189055703347,2
|
||||
54.93687924516212,54.93687924516212,54.93687924516212,244.29250373368023,0.5345340330054837,0.4560407685720036,0.9668410455216722,14.489222895040369,943.0083581627408,2
|
||||
28.5451904296875,28.5451904296875,28.5451904296875,54.11979166666667,0.7861352443063221,0.7317091774847361,0.9907095355871248,4.1764013671875,135.2280517578125,2
|
||||
65.4788983403819,65.4788983403819,65.4788983403819,209.00973968621028,0.5322915876778999,0.44300443466575723,0.9789018839868249,13.153758970908624,873.1406630462483,2
|
||||
58.46617709187604,58.46617709187604,58.46617709187604,266.77643323996267,0.4985205024874592,0.4154516059742175,0.9646217702769562,15.764246129376973,1023.1850629985835,2
|
||||
18.515768376316043,18.515768376316043,18.515768376316043,87.5117670297421,0.8014986651990033,0.7763499055844378,0.9704688928957408,5.914300202839756,340.80399401139766,2
|
||||
43.59077037677816,43.59077037677816,43.59077037677816,278.66037160154815,0.6489210651868449,0.6089516172843938,0.9657184575441201,13.874279123414071,1017.1929065743944,2
|
||||
39.15947839083954,39.15947839083954,39.15947839083954,124.9455588119616,0.6798494738359914,0.5967804462260933,0.9804018289990718,9.111902771444495,557.2727808177534,2
|
||||
19.08728124510516,19.08728124510516,19.08728124510516,70.27938056473727,0.7955285006339291,0.7611054128100057,0.9765734364260975,4.797321542996284,218.00538254517494,2
|
||||
52.83229416466826,52.83229416466826,52.83229416466826,211.4392174456426,0.5288896480241734,0.45668517600756153,0.9700189162093193,15.79404476418865,1160.5744284571704,2
|
||||
52.24136887813212,52.24136887813212,52.24136887813212,65.63821087514255,0.6356429867056269,0.51973716932201,0.9911939263595035,5.597704077092825,209.4400459239975,2
|
||||
24.7781568627451,24.7781568627451,24.7781568627451,125.1543895253683,0.7766831517413681,0.7435626029171418,0.9727572248179674,7.746725490196078,579.8598366013072,2
|
||||
20.092111111111112,20.092111111111112,20.092111111111112,61.42102564102564,0.8224051636452433,0.7880663855865245,0.985338573100706,3.490177777777778,140.3891111111111,1
|
||||
12.2486,12.2486,12.2486,60.054046822742485,0.917364718975514,0.9066990147964471,0.9841726383751497,2.345466666666667,119.34584444444444,1
|
||||
43.40712222222222,43.40712222222222,43.40712222222222,129.3075696767001,0.6875501275799359,0.6500726305529279,0.9859734114422136,9.26981111111111,467.60345142111123,1
|
||||
33.239644444444444,33.239644444444444,33.239644444444444,121.65003344481606,0.6759255024241793,0.6250905211171892,0.9776161290590192,8.982422222222223,477.51291039802464,1
|
||||
27.367566666666665,27.367566666666665,27.367566666666665,76.23863991081384,0.7466168146231191,0.7099127382764094,0.9835900940828166,6.256977777777778,274.29379516,1
|
||||
55.79783333333334,55.79783333333334,55.79783333333334,215.44035674470456,0.619236466840153,0.5751491980569932,0.9809442858185478,13.24771111111111,769.2022866291358,1
|
||||
32.9105,32.9105,32.9105,198.53322185061324,0.6580724497127872,0.6174992216837332,0.9623227587768473,13.036,859.9189555377778,1
|
||||
33.44043333333333,33.44043333333333,33.44043333333333,91.18717948717952,0.7328032344285419,0.6972757905137676,0.9859018513333075,7.244822222222222,334.4467111111111,1
|
||||
29.243322222222222,29.243322222222222,29.243322222222222,85.33322185061314,0.7599886009961411,0.728488518817282,0.9854122279221954,6.621488888888889,308.2768888888889,1
|
||||
20.59617777777778,20.59617777777778,20.59617777777778,85.09153846153849,0.8277179464064508,0.805057733603629,0.9814230567010709,5.328,267.6885767328395,1
|
||||
13.069544444444444,13.069544444444444,13.069544444444444,52.03383500557414,0.806663189683776,0.7635972876874688,0.9692493734175704,4.518222222222223,199.08649347111114,1
|
||||
18.949955555555555,18.949955555555555,18.949955555555555,63.49557413600891,0.8521638214338203,0.819720151065272,0.9874099592549898,4.459933333333334,254.2757775995061,1
|
||||
33.05473333333333,33.05473333333333,33.05473333333333,115.11647714604236,0.7111083800647298,0.6508278730529875,0.9783575697456335,6.979811111111111,300.11664170061727,1
|
||||
16.68018888888889,16.68018888888889,16.68018888888889,147.59694537346712,0.8569436864344977,0.8432151561256567,0.9643899886096746,5.849622222222222,408.8237244320987,1
|
||||
15.0944,15.0944,15.0944,34.70916387959865,0.8506853537390275,0.809294661359812,0.9882285311371855,3.3272666666666666,143.2788,1
|
||||
47.24986666666667,47.24986666666667,47.24986666666667,121.90688963210704,0.6123418248996075,0.5278569598986397,0.9837607571687637,8.847977777777778,341.22707988888897,1
|
||||
30.227633333333333,30.227633333333333,30.227633333333333,84.85585284280937,0.7111323403231005,0.6593904605320716,0.9839273968040876,6.151055555555556,266.6062766635803,1
|
||||
20.597144444444446,20.597144444444446,20.597144444444446,110.68878483835005,0.8349184338342214,0.8151610002506989,0.978091848500083,5.308622222222223,289.2448,1
|
||||
53.65067777777778,53.65067777777778,53.65067777777778,130.90711259754738,0.6013247256917744,0.5417562494631081,0.9871898613622478,7.604711111111111,296.84660355506173,1
|
||||
26.261844444444446,26.261844444444446,26.261844444444446,96.73908584169453,0.8326622979637094,0.8105461380236507,0.9876805145834194,5.592355555555556,322.2542222222222,1
|
||||
11.30278888888889,11.30278888888889,11.30278888888889,83.67850613154964,0.8767309788263157,0.8610566889894645,0.9636523900555906,4.319022222222222,268.6861777777778,1
|
||||
17.379277777777776,17.379277777777776,17.379277777777776,62.89739130434782,0.8200141249168023,0.7912947673298052,0.980345003937223,3.9954,175.62601198222228,1
|
||||
30.1854,30.1854,30.1854,93.61884057971015,0.7383988967487907,0.6969092152748181,0.9837991133312761,6.568733333333333,285.13693204888887,1
|
||||
24.2203,24.2203,24.2203,71.2090746934225,0.7626520428403437,0.6457779239542701,0.983496561302895,4.6840222222222225,173.36788844444445,1
|
||||
9.617677777777779,9.617677777777779,9.617677777777779,25.716744704570793,0.8335259931397808,0.7896566021499384,0.9793671385161793,3.202733333333333,118.0411111111111,1
|
||||
29.053644444444444,29.053644444444444,29.053644444444444,63.771259754738026,0.7026667864668331,0.6430998151447309,0.984978653976134,6.6122,277.6481332735803,1
|
||||
26.091,26.091,26.091,118.64547380156078,0.7176897466161976,0.6742772754200625,0.9714753935573622,7.690044444444444,403.29149233333334,1
|
||||
16.818133333333332,16.818133333333332,16.818133333333332,62.099531772575254,0.8252872853301834,0.7992828059462985,0.9798622186204381,4.369533333333333,191.22617777777776,1
|
||||
18.810311111111112,18.810311111111112,18.810311111111112,91.92537346711258,0.8097964536058728,0.7614568870207318,0.9789119765741788,5.479455555555556,312.4659199050617,1
|
||||
20.25807777777778,20.25807777777778,20.25807777777778,106.97670011148273,0.8172450066398513,0.7937388225930128,0.9758568238614516,5.851866666666667,325.2610779254321,1
|
||||
40.06185555555555,40.06185555555555,40.06185555555555,122.7455072463768,0.6786648304641527,0.6285084834258212,0.9834755928400312,7.304022222222223,298.0519111106173,1
|
||||
30.332622222222223,30.332622222222223,30.332622222222223,82.5610033444816,0.7434896801212159,0.704625390543565,0.9859620485343146,6.239022222222222,275.60782222222224,1
|
||||
9.56248888888889,9.56248888888889,9.56248888888889,35.25119286510591,0.8464577798439387,0.8012956033171268,0.9748887717490985,3.0822444444444446,122.66797777777778,1
|
||||
23.05008888888889,23.05008888888889,23.05008888888889,60.86764771460423,0.7787858081005894,0.7464512016216978,0.9846523035517917,5.139777777777778,203.48355555555557,1
|
||||
27.425244444444445,27.425244444444445,27.425244444444445,133.78738015607578,0.7701020231791612,0.7435395328017274,0.9766595553972188,7.5040555555555555,421.153450367284,1
|
||||
59.16813333333333,59.16813333333333,59.16813333333333,127.10376811594203,0.5246273928097527,0.4226569704592749,0.9845926902782614,8.133177777777778,286.4085842958025,1
|
||||
18.627577777777777,18.627577777777777,18.627577777777777,74.71035674470458,0.8157476954121126,0.7838737496582647,0.9794205877186505,5.013533333333333,256.3819042350617,1
|
||||
48.74142222222222,48.74142222222222,48.74142222222222,200.6978595317725,0.6478705543954901,0.5057255918517768,0.9802438808204698,9.455688888888888,455.20171111111114,1
|
||||
29.497722222222222,29.497722222222222,29.497722222222222,182.93782608695656,0.7546777252191176,0.7226899077757958,0.972327225637019,7.775033333333333,458.09255180135807,1
|
||||
61.866344444444444,61.866344444444444,61.866344444444444,236.88130434782605,0.5454907277318433,0.4874889610286598,0.9774439881382674,15.691688888888889,1058.16743676,1
|
||||
56.394577777777776,56.394577777777776,56.394577777777776,288.17130434782615,0.5130605815746948,0.4586725128633095,0.9666872833359694,16.57758888888889,1040.274255501111,1
|
||||
10.32108888888889,10.32108888888889,10.32108888888889,62.50428093645486,0.899343820211791,0.8856295462859944,0.9740807359289759,4.354066666666666,342.48637777777776,1
|
||||
11.840366666666666,11.840366666666666,11.840366666666666,70.53444816053512,0.8580311788592552,0.8392409932308553,0.9628160343519238,4.1527111111111115,212.92373333333333,1
|
||||
58.2331,58.2331,58.2331,254.43429208472682,0.5365105328721282,0.4791356382799647,0.972140460603218,15.250933333333334,945.2670888888889,1
|
||||
57.27341111111111,57.27341111111111,57.27341111111111,212.27770345596434,0.5351256786959602,0.47712149117907726,0.9749709898286587,13.5296,686.15064284,1
|
||||
9.159033333333333,9.159033333333333,9.159033333333333,47.47092530657749,0.8493580095449855,0.815606678113108,0.9654633879769574,4.125422222222222,233.17137777777776,1
|
||||
21.6796,21.6796,21.6796,213.44887402452616,0.7856949611430859,0.7655176883331349,0.9510072674024191,11.101077777777778,952.864610992469,1
|
||||
46.67871111111111,46.67871111111111,46.67871111111111,125.21353400222965,0.5898279883780648,0.5053516969939716,0.980368022597235,9.069533333333334,381.1472444444444,1
|
||||
26.43776666666667,26.43776666666667,26.43776666666667,179.80882943143817,0.8254197637520847,0.8062024473668818,0.9775170082721913,7.364711111111111,557.2252,1
|
||||
52.684333333333335,52.684333333333335,52.684333333333335,188.78568561872913,0.5556183682237215,0.43330601633777693,0.9801301963980602,11.5532,644.374197368395,1
|
||||
44.79828888888889,44.79828888888889,44.79828888888889,369.6457748049053,0.6206845663148612,0.585230445206788,0.9549482602833482,20.06277777777778,1803.6802222177778,1
|
||||
50.031866666666666,50.031866666666666,50.031866666666666,176.68160535117056,0.580141995270003,0.5075924909795179,0.9792537473729157,9.810477777777777,493.2613347050618,1
|
||||
35.628455555555554,35.628455555555554,35.628455555555554,146.83545150501678,0.7300029490277804,0.6914056547521851,0.9819648781444319,7.718977777777778,418.09108888888886,1
|
||||
16.894866666666665,16.894866666666665,16.894866666666665,79.88122630992196,0.8612213019624421,0.8443030983081294,0.9798919855666053,4.7226888888888885,274.51882222222224,1
|
||||
58.54121111111111,58.54121111111111,58.54121111111111,341.9254180602007,0.5244971894931653,0.4647999813021076,0.964369439980719,20.705111111111112,1612.4341543698768,1
|
||||
31.824133333333332,31.824133333333332,31.824133333333332,103.20064659977704,0.7688080420618483,0.730868263997827,0.9871797025722164,7.419688888888889,426.74497777777776,1
|
||||
18.395566666666667,18.395566666666667,18.395566666666667,114.00539576365664,0.8583753681119565,0.8416046016833021,0.9768991493589355,5.071666666666666,322.3244222222222,1
|
||||
24.817944444444443,24.817944444444443,24.817944444444443,103.28858416945374,0.7039441423764842,0.6524124249658918,0.9685824364945602,7.687266666666667,407.3539333333333,1
|
||||
31.110622222222222,31.110622222222222,31.110622222222222,228.72672240802675,0.6337751189526526,0.5780238754614927,0.9462799561256588,12.359933333333334,875.7868444444445,1
|
||||
25.02637777777778,25.02637777777778,25.02637777777778,277.55623188405787,0.7031797145590166,0.6731009119766358,0.9366329595219764,12.929644444444444,1072.1995105165433,1
|
||||
8.988988888888889,8.988988888888889,8.988988888888889,62.77835005574136,0.914510609466932,0.9033796871293415,0.970047793097277,3.3347555555555557,223.183,1
|
||||
44.96432222222222,44.96432222222222,44.96432222222222,149.81266443701227,0.6378495162343184,0.5924860041946638,0.9822243951961908,9.411177777777779,413.2363555555556,1
|
||||
49.67218888888889,49.67218888888889,49.67218888888889,208.56066889632103,0.6974065562933881,0.6580116836036493,0.983815084045519,8.09228888888889,424.73617777777775,1
|
||||
102.89831111111111,102.89831111111111,102.89831111111111,200.73008918617612,0.45612982115226103,0.3804138124986043,0.9890224994095104,10.517111111111111,414.21886622222223,1
|
||||
58.33608888888889,58.33608888888889,58.33608888888889,62.32560758082496,0.6376651514486007,0.292560796254176,0.9951271082913052,3.621811111111111,61.13455247888889,1
|
||||
36.898155555555554,36.898155555555554,36.898155555555554,119.29861761426977,0.7734728880219361,0.7425085588844106,0.988950648297006,5.445888888888889,247.09615555555555,1
|
||||
34.365433333333335,34.365433333333335,34.365433333333335,138.02365663322183,0.7295735042582143,0.6845161455933302,0.9814290942274201,7.438133333333333,380.95795555555554,1
|
||||
28.10861111111111,28.10861111111111,28.10861111111111,214.75125975473802,0.684492957713992,0.648277285877613,0.9496595406234614,11.526355555555556,751.5618,1
|
||||
28.1007,28.1007,28.1007,183.6115050167224,0.6928412107100688,0.6495482665962061,0.9586678584891193,10.213422222222222,645.4212888888889,1
|
||||
32.50641111111111,32.50641111111111,32.50641111111111,171.81239687848387,0.7692633964998145,0.7397952475505916,0.9799895041993767,9.172266666666667,658.2063777777778,1
|
||||
28.082177777777776,28.082177777777776,28.082177777777776,155.32082497212932,0.7564221010701359,0.7278312227748178,0.972652758032058,8.50628888888889,547.6624444444444,1
|
||||
27.19228888888889,27.19228888888889,27.19228888888889,168.93618729096988,0.7275432044505791,0.6919450142139872,0.9650494312127086,9.998111111111111,676.7160888888889,1
|
||||
23.217755555555556,23.217755555555556,23.217755555555556,202.42042363433666,0.6397197103491843,0.5848158274455834,0.9264534583457222,11.351977777777778,683.8020860365433,1
|
||||
30.75732222222222,30.75732222222222,30.75732222222222,315.7647491638797,0.6709563042731685,0.6321178544940216,0.94004699423172,14.7432,1231.6043111111112,1
|
||||
69.0197,69.0197,69.0197,213.85690078037905,0.47414464049702043,0.4067697929091355,0.9791374613926184,13.1105,589.2955888877779,1
|
||||
31.474144444444445,31.474144444444445,31.474144444444445,215.0235005574136,0.7488602517270342,0.7245011548774121,0.9682172373036523,11.96411111111111,940.4057777777778,1
|
||||
27.704044444444445,27.704044444444445,27.704044444444445,174.44100334448163,0.7759953374001435,0.7534241481085648,0.9748457741088471,9.360555555555555,666.5373111111111,1
|
||||
30.8924,30.8924,30.8924,209.83734671125978,0.7517680122625436,0.7243943268158644,0.9719823567355902,10.896377777777777,836.4936888888889,1
|
||||
18.191855555555556,18.191855555555556,18.191855555555556,137.69088071348946,0.7889636890289516,0.7622192599778169,0.958763598706518,7.599777777777778,504.8919111111111,1
|
||||
30.08428888888889,30.08428888888889,30.08428888888889,166.59382385730217,0.7622085227815406,0.7358416794629846,0.9742463382010179,9.469422222222223,667.9632888888889,1
|
||||
24.630111111111113,24.630111111111113,24.630111111111113,140.34379041248604,0.7655869869675092,0.7367199461631815,0.9700541570270762,8.60211111111111,567.1886888888889,1
|
||||
25.567988888888888,25.567988888888888,25.567988888888888,132.93397993311038,0.7668605882842027,0.7351071570343697,0.9740134441402164,8.4434,554.9802,1
|
||||
21.906488888888887,21.906488888888887,21.906488888888887,166.66608695652175,0.8061051113323646,0.785401042412948,0.9665669604583517,8.1784,611.8730222222222,1
|
||||
42.09621111111111,42.09621111111111,42.09621111111111,121.15527313266446,0.621528217227854,0.5529766034625586,0.9801491710145851,6.8751444444444445,249.2896935258025,1
|
||||
26.49528888888889,26.49528888888889,26.49528888888889,153.37609810479373,0.7707140079907503,0.7436595567420597,0.9739207892418339,8.958511111111111,623.0283111111111,1
|
||||
57.93997777777778,57.93997777777778,57.93997777777778,243.94054626532886,0.502588746660266,0.4350800152671238,0.9694032442964536,17.93338888888889,1157.32589999,1
|
||||
31.450666666666667,31.450666666666667,31.450666666666667,261.7179264214047,0.6840223876553113,0.6553230041958618,0.9505304875407833,14.231022222222222,1057.4565555555555,1
|
||||
33.11342222222222,33.11342222222222,33.11342222222222,75.61280936454851,0.7851951170872984,0.700254257511179,0.991970314792523,4.6007,181.19843310506172,1
|
||||
17.965833333333332,17.965833333333332,17.965833333333332,137.92015607580828,0.813031072714593,0.7900210531485049,0.9626779115607101,7.356022222222222,502.1097111111111,1
|
||||
35.108444444444444,35.108444444444444,35.108444444444444,212.10677814938688,0.6411100473161119,0.5985774281402111,0.9587982674645644,12.158577777777777,822.2646222222222,1
|
||||
11.968433333333333,11.968433333333333,11.968433333333333,73.3432552954292,0.9179299781606519,0.9094835748866603,0.9803021141025267,2.8633333333333333,178.24544444444444,1
|
||||
47.27693333333333,47.27693333333333,47.27693333333333,267.3481605351171,0.6590890455559679,0.6249135432099094,0.9738488056379923,14.86288888888889,1121.1150444444445,1
|
||||
38.21723333333333,38.21723333333333,38.21723333333333,172.23192865105906,0.6291435554270554,0.5753009421801514,0.9711836609457996,12.180977777777779,747.592,1
|
||||
27.475466666666666,27.475466666666666,27.475466666666666,109.23186176142696,0.7442385067069888,0.710654405273466,0.9770053094089728,8.324466666666666,485.27084444444444,1
|
||||
39.582433333333334,39.582433333333334,39.582433333333334,94.66923076923077,0.6311889715402798,0.5728680199943057,0.9860297260607427,7.382688888888889,254.0904888888889,1
|
||||
28.888,28.888,28.888,106.71458193979934,0.746556838920043,0.7127255821624515,0.9809189022883249,6.4346,304.4285777777778,1
|
||||
56.603344444444446,56.603344444444446,56.603344444444446,323.71225195094763,0.6087670024517431,0.5679669889384921,0.9722064601448492,18.96341111111111,1546.9850777766662,1
|
||||
37.83667777777778,37.83667777777778,37.83667777777778,309.3571683389075,0.6868885036203285,0.655085006876992,0.962859681879155,14.022933333333333,1121.4074222222223,1
|
||||
37.31572222222222,37.31572222222222,37.31572222222222,407.74539576365663,0.6122214939310692,0.5763696053657223,0.9316277249895506,20.018733333333333,1761.1103110869133,1
|
||||
29.3997,29.3997,29.3997,181.20474916387963,0.7592248044460008,0.7357650062472204,0.9700578073903768,9.575955555555556,651.8853111111112,1
|
||||
27.256,27.256,27.256,171.38584169453736,0.7773679589862973,0.756013456641493,0.9703439263005424,9.243755555555556,659.6708666666667,1
|
||||
20.85202222222222,20.85202222222222,20.85202222222222,155.04124860646607,0.8242161430733259,0.8065841959289277,0.9676401276799587,7.6196,558.1551777777778,1
|
||||
13.480033333333333,13.480033333333333,13.480033333333333,58.86127090301005,0.8006885671807513,0.7533820446951328,0.9669522373393771,5.5824444444444445,302.8632666666667,1
|
||||
18.47222222222222,18.47222222222222,18.47222222222222,91.64187290969899,0.8650363508104181,0.8441177231486807,0.9826315770539549,5.464177777777778,425.58448888888887,1
|
||||
35.581022222222224,35.581022222222224,35.581022222222224,174.75250836120398,0.6929107958566274,0.6331062841062048,0.9700004804654009,10.0324,591.3295111111111,1
|
||||
64.98497777777777,64.98497777777777,64.98497777777777,277.31154960981047,0.5457671676022887,0.49841348639986266,0.9768729802871464,17.91288888888889,1195.7978888888888,1
|
||||
67.61668888888889,67.61668888888889,67.61668888888889,157.9570457079153,0.4909096436992478,0.4213947593842721,0.9841337082656223,10.277922222222223,390.0511395554321,1
|
||||
16.61158888888889,16.61158888888889,16.61158888888889,192.83808249721295,0.855224713663129,0.8423492093573507,0.954043172150174,8.017955555555556,772.9984222222222,1
|
||||
17.031533333333332,17.031533333333332,17.031533333333332,60.66914158305462,0.8444663119905894,0.8158368689776666,0.9826855325923086,4.845577777777778,289.4929111111111,1
|
||||
31.626077777777777,31.626077777777777,31.626077777777777,102.25248606465996,0.6969488500500294,0.6475862390238951,0.981417087800225,7.8404,386.71784444444444,1
|
||||
58.3621,58.3621,58.3621,603.1036454849498,0.5025834595187995,0.45084957042273516,0.9444058414288177,25.185288888888888,2434.1951830711114,1
|
||||
19.591377777777776,19.591377777777776,19.591377777777776,142.27090301003344,0.8419300451178067,0.8254894404982805,0.9710625870258414,7.056355555555555,531.7519333333333,1
|
||||
53.93573333333333,53.93573333333333,53.93573333333333,189.0197881828317,0.5923062212978872,0.525750292471996,0.981950280260255,9.7697,500.26801109024694,1
|
||||
29.41768888888889,29.41768888888889,29.41768888888889,235.29748049052398,0.7558404727834571,0.7272814952678127,0.9656827329816531,9.982777777777779,741.3536888888889,1
|
||||
31.658066666666667,31.658066666666667,31.658066666666667,256.3494760312153,0.7327031936679612,0.7055862708576685,0.9608810140759506,11.561111111111112,855.4708666666667,1
|
||||
54.255855555555556,54.255855555555556,54.255855555555556,160.92057971014492,0.5468587289179409,0.4762922511991483,0.9796027110260414,12.022066666666667,587.4626570069136,1
|
||||
11.019855555555555,11.019855555555555,11.019855555555555,110.30813823857304,0.8777648094720425,0.8637029085355347,0.9514418208635709,5.277177777777778,382.9854222222222,1
|
||||
15.856311111111111,15.856311111111111,15.856311111111111,75.96889632107022,0.8320935995492138,0.8076000635533035,0.974634190901421,4.9282,262.08542222222223,1
|
||||
26.3965,26.3965,26.3965,141.87962095875142,0.7660615353233124,0.731969758669595,0.9732764728515159,8.813088888888888,601.4342444444444,1
|
||||
21.542766666666665,21.542766666666665,21.542766666666665,100.5535785953177,0.7934611148884406,0.7608535041448251,0.9754746046893583,5.848288888888889,327.157,1
|
||||
28.193544444444445,28.193544444444445,28.193544444444445,107.25946488294316,0.7088552699331826,0.6651528310448903,0.9757464101189982,9.051733333333333,551.0579333333334,1
|
||||
12.936822222222222,12.936822222222222,12.936822222222222,78.86573021181717,0.8685878014468067,0.8487997825784637,0.9674179291691305,3.899111111111111,218.94797777777777,1
|
||||
33.2541,33.2541,33.2541,158.23645484949833,0.7224071620796334,0.6902605403406941,0.9786358409542485,9.906444444444444,615.2262222222222,1
|
||||
32.54376666666667,32.54376666666667,32.54376666666667,256.216900780379,0.7020002046922595,0.6693016623016751,0.9628696654463841,12.905933333333333,976.7176444444444,1
|
||||
30.95018888888889,30.95018888888889,30.95018888888889,255.56369007803792,0.7393440365541761,0.7108505229479678,0.9625307520780542,12.40338888888889,1005.622899998889,1
|
||||
24.12158888888889,24.12158888888889,24.12158888888889,198.39306577480497,0.7754332278282573,0.7489019255137636,0.961398850588231,9.66408888888889,730.164,1
|
||||
34.11915555555556,34.11915555555556,34.11915555555556,162.34833890746938,0.713365586932514,0.6771313366344962,0.9761151679094491,9.315677777777777,539.9556507643209,1
|
||||
40.52003333333333,40.52003333333333,40.52003333333333,100.79716833890748,0.6972045039161396,0.651226990335487,0.9875145759818486,9.2238,515.1673111111111,1
|
||||
35.258944444444445,35.258944444444445,35.258944444444445,137.46071348940916,0.6590646650063259,0.6088148719825145,0.9743489212961851,10.999333333333333,637.4681777777778,1
|
||||
28.85681111111111,28.85681111111111,28.85681111111111,209.445641025641,0.7572155915568967,0.7326459119360094,0.9659430550990024,10.170244444444444,725.4178,1
|
||||
52.46467777777778,52.46467777777778,52.46467777777778,139.5936900780379,0.5670372005051352,0.4870449022498515,0.982718102231184,9.990666666666666,453.7743111111111,1
|
||||
19.891733333333335,19.891733333333335,19.891733333333335,130.95268673355628,0.7968732009806199,0.7691356641480706,0.9666506700062183,7.350666666666666,481.4059111111111,1
|
||||
27.65727777777778,27.65727777777778,27.65727777777778,174.4250836120401,0.7693730836838416,0.7449088169267999,0.9706995086051682,8.06958888888889,484.5357366665432,1
|
||||
49.733644444444444,49.733644444444444,49.733644444444444,292.39483835005586,0.6479961280165845,0.5964856018875777,0.9721097745071619,12.6346,817.1836444439506,1
|
||||
45.2591,45.2591,45.2591,213.23415830546267,0.6060529376129143,0.5496614758822469,0.9724068081705156,11.361144444444445,672.366099896173,1
|
||||
66.22656666666667,66.22656666666667,66.22656666666667,383.87614269788173,0.5061176718912849,0.4444155892987467,0.9655197145153861,24.41142222222222,2451.6032,1
|
||||
39.550422222222224,39.550422222222224,39.550422222222224,174.39578595317732,0.6414390449176837,0.5968401743194336,0.9755245634988209,10.195422222222222,519.9393333333334,1
|
||||
43.62264444444445,43.62264444444445,43.62264444444445,130.93603121516168,0.7120470813233306,0.6717162604537928,0.9882831093364632,6.6246,279.77197777777775,1
|
||||
30.0154,30.0154,30.0154,224.93386845039024,0.6892385506398389,0.6554546514939453,0.9537084858849455,11.7762,834.6409777777778,1
|
||||
39.27065555555556,39.27065555555556,39.27065555555556,179.2985730211817,0.6746539904526616,0.6321550363303732,0.9754677184928926,10.31631111111111,610.5898888888889,1
|
||||
32.66473333333333,32.66473333333333,32.66473333333333,137.51946488294317,0.7168790427990905,0.6820314709853451,0.9776662819493169,10.088666666666667,608.5574222222223,1
|
||||
13.765766666666666,13.765766666666666,13.765766666666666,72.08909698996656,0.8624286650702917,0.8398442049554898,0.9716381459686324,3.282388888888889,158.3485865717284,1
|
||||
23.869877777777777,23.869877777777777,23.869877777777777,197.7276700111483,0.8124773641117623,0.7905879200347231,0.9696121398869753,8.37,644.1899555555556,1
|
||||
23.994666666666667,23.994666666666667,23.994666666666667,149.53580824972136,0.8078905368263745,0.7834363182559183,0.9773748820810355,7.596222222222222,554.2591777777777,1
|
||||
29.25432222222222,29.25432222222222,29.25432222222222,139.35649944258645,0.7518579415493556,0.7143844747627173,0.9768615366885168,9.271933333333333,586.2864666666667,1
|
||||
9.630377777777777,9.630377777777777,9.630377777777777,86.96169453734667,0.887731141266791,0.8746562532331461,0.9535271165007821,4.954244444444444,369.70171111111114,1
|
||||
15.164733333333333,15.164733333333333,15.164733333333333,68.213110367893,0.8922343121711013,0.8746890509039701,0.9845636023073016,3.6258222222222223,226.3716,1
|
||||
13.520633333333333,13.520633333333333,13.520633333333333,85.69609810479376,0.8782640006003453,0.864128913916779,0.9725963741757482,4.662711111111111,305.35,1
|
||||
13.803933333333333,13.803933333333333,13.803933333333333,70.43041248606464,0.9065084756152381,0.892253344637221,0.9839907554341313,4.017644444444445,327.4458666666667,1
|
||||
13.124444444444444,13.124444444444444,13.124444444444444,100.01667781493866,0.8587472403573592,0.8398982045215695,0.9593100948632103,5.755355555555555,413.12075555555555,1
|
||||
23.626055555555556,23.626055555555556,23.626055555555556,111.30541806020067,0.7939129612928622,0.761401202001941,0.9780411827816523,8.114644444444444,558.2123111111111,1
|
||||
17.880377777777777,17.880377777777777,17.880377777777777,206.59725752508368,0.8127518357750357,0.7951877238379775,0.9448109441759018,8.998355555555555,735.6979777777777,1
|
||||
10.825255555555556,10.825255555555556,10.825255555555556,79.93065774804907,0.8669084843866499,0.8526694528016339,0.956155540847721,5.866444444444444,447.80462222222224,1
|
||||
30.804355555555556,30.804355555555556,30.804355555555556,234.37181716833894,0.7789221122789338,0.7559576417566298,0.9712112025859537,9.920533333333333,758.3823333333333,1
|
||||
12.32018888888889,12.32018888888889,12.32018888888889,144.97799331103678,0.8624196324112477,0.8481877931053162,0.9387316146400388,6.869088888888889,596.7045333333333,1
|
||||
38.76461111111111,38.76461111111111,38.76461111111111,251.4171460423635,0.6363665424924693,0.5988441010997172,0.9625060751133176,14.077488888888888,924.1549555555556,1
|
||||
33.60534444444444,33.60534444444444,33.60534444444444,212.7009364548495,0.7293172169116399,0.6997701294169594,0.9708579313750119,10.944177777777778,768.4432,1
|
||||
37.774255555555555,37.774255555555555,37.774255555555555,186.98550724637676,0.7274549024497711,0.6989930164960154,0.9783192450755321,10.623022222222222,706.6434,1
|
||||
48.2512,48.2512,48.2512,350.5928874024526,0.5612094361095338,0.5206518492995617,0.9546912620809578,17.055677777777777,1146.5978433055554,1
|
||||
43.839055555555554,43.839055555555554,43.839055555555554,245.5797770345597,0.5465196920022798,0.4753443558348252,0.9514506704948603,16.2253,1170.1584777628393,1
|
||||
21.253066666666665,21.253066666666665,21.253066666666665,58.41375696767001,0.8196279593475732,0.7853766655008274,0.9878454673228783,3.8073555555555556,168.51286666666667,1
|
||||
13.8615,13.8615,13.8615,80.39228539576368,0.9118075985463685,0.9008776438775834,0.9831393869740966,3.447111111111111,247.2698,1
|
||||
26.362922222222224,26.362922222222224,26.362922222222224,87.12550724637681,0.7703630487492716,0.7398676613032554,0.9829378839381318,6.5505555555555555,314.00228888888887,1
|
||||
43.89942222222222,43.89942222222222,43.89942222222222,170.7823188405797,0.6181636630279059,0.5633975838561808,0.9789938406780734,10.815644444444445,601.2634666666667,1
|
||||
27.540666666666667,27.540666666666667,27.540666666666667,56.889431438127104,0.768153840456965,0.7185994606118344,0.9902029964586033,5.718577777777778,269.88526666666667,1
|
||||
23.954344444444445,23.954344444444445,23.954344444444445,339.3021404682275,0.7583911229960598,0.738615366531821,0.929107840816039,16.07008888888889,1789.6790666666666,1
|
||||
21.627644444444446,21.627644444444446,21.627644444444446,157.20793756967666,0.8183326792740866,0.7971282663044359,0.9708936966474228,8.993022222222223,783.6968888888889,1
|
||||
31.01377777777778,31.01377777777778,31.01377777777778,136.1613154960981,0.7319532487174271,0.6389646048912897,0.9794648758327725,8.866388888888888,673.9029222072838,1
|
||||
47.307766666666666,47.307766666666666,47.307766666666666,166.32240802675588,0.6957249329456503,0.6545048683888549,0.9847900154880116,9.647133333333333,561.1609555555556,1
|
||||
46.65096666666667,46.65096666666667,46.65096666666667,258.7696098104794,0.5818620274077673,0.5334712008096967,0.9648893346460944,13.655088888888889,803.0938666666667,1
|
||||
47.6994,47.6994,47.6994,238.04374581939803,0.5303434623330999,0.4696707980791687,0.9638110413534627,13.666,751.3586888809876,1
|
||||
35.612788888888886,35.612788888888886,35.612788888888886,162.38798216276476,0.64763959487655,0.6043294658626257,0.9724498768607611,11.907022222222222,727.5716,1
|
||||
14.529466666666666,14.529466666666666,14.529466666666666,73.1439464882943,0.8689309208607243,0.8522708963246022,0.9775440698756835,3.7193555555555555,184.4222,1
|
||||
43.76427777777778,43.76427777777778,43.76427777777778,152.23578595317727,0.6492827194203721,0.5192579866375794,0.9806577362660376,10.110188888888889,527.7070315258024,1
|
||||
34.788266666666665,34.788266666666665,34.788266666666665,186.23270903010032,0.7366756012930936,0.7086136811531352,0.9752246173176362,9.90568888888889,660.5634222222222,1
|
||||
13.806244444444445,13.806244444444445,13.806244444444445,93.46972129319956,0.8784265901132952,0.8621261375606578,0.9734543660272047,4.836844444444444,354.4640444444444,1
|
||||
29.61081111111111,29.61081111111111,29.61081111111111,129.0677146042364,0.7500331999662826,0.7201336215219124,0.9800042241146595,10.35828888888889,725.8404222222222,1
|
||||
26.5299,26.5299,26.5299,113.02187290969901,0.7999096658260623,0.7769058307035822,0.9828987468197335,8.2834,575.3432666666666,1
|
||||
50.74512222222222,50.74512222222222,50.74512222222222,157.9451505016722,0.5686841147272628,0.49710473180434017,0.9776098273524422,10.470866666666666,476.37415555555555,1
|
||||
21.526888888888887,21.526888888888887,21.526888888888887,104.73422519509477,0.8045121783625342,0.7800370743413957,0.9777865229758398,6.845844444444444,431.3015111111111,1
|
||||
38.38422222222222,38.38422222222222,38.38422222222222,55.918573021181714,0.6880636280358964,0.44665052000907907,0.9923547810482349,4.026955555555555,95.31550302024692,1
|
||||
45.598444444444446,45.598444444444446,45.598444444444446,267.63043478260875,0.6203225924677522,0.5751916457972063,0.9687755453231778,14.544688888888889,961.5354,1
|
||||
29.25142222222222,29.25142222222222,29.25142222222222,160.41429208472692,0.7261775565740193,0.688324713561684,0.9699746171956559,8.6206,496.4870666666667,1
|
||||
47.00236666666667,47.00236666666667,47.00236666666667,191.21641025641026,0.6045368300475492,0.5317932230507115,0.974504546479607,10.932522222222222,628.1628748117284,1
|
||||
37.58621111111111,37.58621111111111,37.58621111111111,305.54682274247494,0.7232422562775548,0.6985155483828972,0.9644339018113124,14.429588888888889,1240.282144429506,1
|
||||
31.199055555555557,31.199055555555557,31.199055555555557,122.09901895206242,0.6936399340171698,0.6351583257941604,0.9757083284091752,9.493555555555556,591.4134666666666,1
|
||||
28.062033333333332,28.062033333333332,28.062033333333332,118.37656633221852,0.6775288415076898,0.6197758601538275,0.9684471727372419,8.327222222222222,459.6455111111111,1
|
||||
23.718322222222223,23.718322222222223,23.718322222222223,171.985574136009,0.7564965105719693,0.7229370279931389,0.9622847720198999,8.61891111111111,572.9029999995062,1
|
||||
42.862811111111114,42.862811111111114,42.862811111111114,129.4286510590858,0.5833774541774065,0.49188122225600817,0.9782495437049393,8.302755555555555,378.5922444444444,1
|
||||
22.934655555555555,22.934655555555555,22.934655555555555,79.23641025641027,0.7990226137232999,0.7630329744298493,0.983279961732119,4.5315111111111115,212.06088888888888,1
|
||||
42.316922222222225,42.316922222222225,42.316922222222225,99.4419286510591,0.7247298939801792,0.6803354692078366,0.9907715847000673,5.641066666666666,206.84711988888887,1
|
||||
46.64084444444445,46.64084444444445,46.64084444444445,223.0791304347826,0.6076447195415127,0.5696641980926194,0.9722773570475259,13.895655555555555,835.3306664433334,1
|
||||
24.471633333333333,24.471633333333333,24.471633333333333,160.10439241917504,0.7908036337742856,0.7691176198025282,0.9689747022855395,9.105688888888888,667.7863333333333,1
|
||||
14.3498,14.3498,14.3498,72.15105908584171,0.8484819011356232,0.8244662916729243,0.9727815523627541,4.8318666666666665,288.98675555555553,1
|
||||
21.144344444444446,21.144344444444446,21.144344444444446,89.53438127090303,0.8142761193721341,0.7889639777462459,0.9802992080437204,5.777522222222222,308.25476623691367,1
|
||||
10.71798888888889,10.71798888888889,10.71798888888889,53.54207357859533,0.8695324677033626,0.8527924266127203,0.9693376073050136,4.0472222222222225,219.88033214765431,1
|
||||
28.754344444444445,28.754344444444445,28.754344444444445,135.08967670011145,0.7958442894065261,0.7684837613392872,0.9822758613320323,7.243688888888889,442.96402222222224,1
|
||||
10.681777777777778,10.681777777777778,10.681777777777778,76.57641025641026,0.8766361560502435,0.8627182850541069,0.9615858270132235,4.973822222222222,341.03813333333335,1
|
||||
30.518444444444444,30.518444444444444,30.518444444444444,148.2647045707915,0.7531046913464694,0.7218466101824677,0.9778200449070089,7.826533333333333,425.487443531358,1
|
||||
38.05195555555556,38.05195555555556,38.05195555555556,90.71032329988853,0.7246747782072589,0.688376795547237,0.9889826337215474,7.333844444444445,319.5936443476544,1
|
||||
14.52821111111111,14.52821111111111,14.52821111111111,51.93397993311037,0.9067735962087399,0.893889664981689,0.9894289698812223,2.723911111111111,142.0738888888889,1
|
||||
39.47207777777778,39.47207777777778,39.47207777777778,124.02526198439243,0.6548175099639776,0.5992572834084615,0.9835002255765312,7.991122222222222,360.01559807098766,1
|
||||
30.29748888888889,30.29748888888889,30.29748888888889,47.79672240802676,0.7486983849528662,0.6909628043871218,0.9922544457175899,4.554777777777778,160.856,1
|
||||
20.979655555555556,20.979655555555556,20.979655555555556,132.06590858416945,0.8229238023122709,0.8019045124698652,0.9742819137974681,6.8668,456.66277777777776,1
|
||||
32.676566666666666,32.676566666666666,32.676566666666666,94.79170568561875,0.7193628185750128,0.6229247347166168,0.9859122393353165,6.771722222222222,344.730987318395,1
|
||||
54.528711111111114,54.528711111111114,54.528711111111114,199.32870680044593,0.5115325979716339,0.4428020414176411,0.9729434864977723,10.97161111111111,442.9892095900001,1
|
||||
42.788044444444445,42.788044444444445,42.788044444444445,170.84247491638794,0.5891617533865419,0.534883764003517,0.9722234562434459,9.799011111111112,445.9783725332099,1
|
||||
39.6545,39.6545,39.6545,144.04218506131548,0.6754697274842384,0.6276067096529834,0.979948464925926,8.391555555555556,421.4821636735802,1
|
||||
33.04816666666667,33.04816666666667,33.04816666666667,86.60530657748052,0.6730331610809825,0.6210557835157879,0.984011861484248,8.14568888888889,357.8611333333333,1
|
||||
46.550222222222224,46.550222222222224,46.550222222222224,120.7555518394649,0.6224772110204312,0.48140322361479854,0.9844588403950157,7.9635,298.85161184876546,1
|
||||
13.810133333333333,13.810133333333333,13.810133333333333,70.74584169453736,0.8763506469445391,0.8591248777711363,0.9793268467506043,3.7532,213.7611777777778,1
|
||||
28.496077777777778,28.496077777777778,28.496077777777778,75.65348940914159,0.7863177986976171,0.7558655844122929,0.9888294583468196,6.042922222222222,288.0263662369136,1
|
||||
21.202377777777777,21.202377777777777,21.202377777777777,79.21099219620957,0.8044809214041498,0.7768094340222012,0.9825153554615225,4.999377777777778,221.83639139555555,1
|
||||
39.51441111111111,39.51441111111111,39.51441111111111,189.17551839464886,0.6654067470944829,0.6242006834671174,0.9751976573128974,10.480933333333333,558.1701555555555,1
|
||||
27.667333333333332,27.667333333333332,27.667333333333332,108.55565217391305,0.7400917944218393,0.699807414451084,0.9782793519519323,6.607477777777778,316.9998827791358,1
|
||||
36.3302,36.3302,36.3302,134.51366778149384,0.7349478083688742,0.7051180334683931,0.9835395125293928,10.35148888888889,645.3288,1
|
||||
30.281755555555556,30.281755555555556,30.281755555555556,82.82297658862878,0.699045970412981,0.6397756864813835,0.9822463783354561,6.5589,277.92909282950615,1
|
||||
27.311644444444443,27.311644444444443,27.311644444444443,55.846131549609815,0.709238953793676,0.6323093959558737,0.9846740426874658,6.224011111111111,282.5844723850617,1
|
||||
16.388666666666666,16.388666666666666,16.388666666666666,55.64338907469344,0.8680271802013281,0.8484584619403959,0.9854647530737359,3.3980444444444444,156.19493333333332,1
|
||||
53.38563333333333,53.38563333333333,53.38563333333333,198.80364548494978,0.5776824202938072,0.5349403410945042,0.978079265345343,13.772277777777777,758.1516419722223,1
|
||||
22.820533333333334,22.820533333333334,22.820533333333334,122.20709030100335,0.8186235740022005,0.7948286795976388,0.9805230620577353,6.267688888888889,400.5915111111111,1
|
||||
26.20747777777778,26.20747777777778,26.20747777777778,91.71936454849498,0.7820365965987274,0.753788718438153,0.9828864860582973,7.107022222222223,397.3981777698765,1
|
||||
28.822533333333332,28.822533333333332,28.822533333333332,79.35933110367895,0.7892909239478122,0.7505551746701716,0.9891983816595706,5.738555555555555,279.0478,1
|
||||
20.243644444444445,20.243644444444445,20.243644444444445,98.91197324414716,0.8475950662330536,0.8274198852990955,0.9813888696900241,4.181922222222222,214.76400641666666,1
|
||||
48.066066666666664,48.066066666666664,48.066066666666664,100.99005574136011,0.6150404567912092,0.546771493194217,0.9861861807965671,7.356355555555556,265.1237302276543,1
|
||||
23.747755555555557,23.747755555555557,23.747755555555557,104.16220735785954,0.7205665489100337,0.6695270020066673,0.967627216804078,6.016344444444444,291.3083001480247,1
|
||||
10.85828888888889,10.85828888888889,10.85828888888889,51.98541806020066,0.9007083925145993,0.8856650141965592,0.9789223246654569,2.7535555555555558,134.58093333333332,1
|
||||
37.69233333333333,37.69233333333333,37.69233333333333,94.40818283166111,0.6763480157638523,0.612645405123694,0.986777386129199,6.909455555555556,255.51729965320996,1
|
||||
43.33475555555555,43.33475555555555,43.33475555555555,161.45182831661097,0.735104143964313,0.7017895349008448,0.986076459655281,6.4414,298.639454694321,1
|
||||
9.973555555555556,9.973555555555556,9.973555555555556,47.878127090301,0.9032859797966012,0.8881343580588056,0.9788052864910881,3.3291333333333335,209.0563111111111,1
|
||||
31.623722222222224,31.623722222222224,31.623722222222224,87.37959866220736,0.8075186745968684,0.7835856198380219,0.9908402098636506,4.076444444444444,158.04211098469133,1
|
||||
34.779922222222226,34.779922222222226,34.779922222222226,131.1442363433668,0.725888633858537,0.6886946047217138,0.982564465096712,6.256144444444445,255.96338886802465,1
|
||||
30.297422222222224,30.297422222222224,30.297422222222224,125.86734671125976,0.672526601925187,0.6168966378903937,0.9715181724965749,7.740388888888889,351.4815166211111,1
|
||||
33.25778888888889,33.25778888888889,33.25778888888889,134.0086064659978,0.7642586552231168,0.731399458037717,0.9842933172991718,6.8676,359.66297777777777,1
|
||||
25.2463,25.2463,25.2463,93.73845039018954,0.7413943996595814,0.700054781519752,0.9783695718065697,6.6725666666666665,320.451407404321,1
|
||||
32.423944444444444,32.423944444444444,32.423944444444444,125.73801560758082,0.7397090412643472,0.711318904127442,0.9810050036637066,8.6162,463.2277509091359,1
|
||||
29.617755555555554,29.617755555555554,29.617755555555554,141.34238573021182,0.7663358893421516,0.7374917397409851,0.9807039474357142,7.077333333333334,366.7801777777778,1
|
||||
29.15822222222222,29.15822222222222,29.15822222222222,134.12927536231885,0.7673994855722852,0.737024519056143,0.980767564595457,7.642222222222222,432.93130170666666,1
|
||||
15.3537,15.3537,15.3537,97.18209587513935,0.8196899680582996,0.7939037735093131,0.9656872420498523,5.3483777777777775,295.0589111111111,1
|
||||
9.907533333333333,9.907533333333333,9.907533333333333,64.01159420289855,0.8845732368108314,0.8675911733266468,0.9659337452586111,3.987022222222222,245.28626666666668,1
|
||||
33.49194444444444,33.49194444444444,33.49194444444444,112.8149609810479,0.7392593300778735,0.706059810601781,0.9836675512380494,7.4117,376.24509804333326,1
|
||||
25.319333333333333,25.319333333333333,25.319333333333333,108.52819397993315,0.7596439537609412,0.7270524838829532,0.976786319981855,6.5116,322.53422222222224,1
|
||||
24.681033333333332,24.681033333333332,24.681033333333332,92.30581939799332,0.7724849504791227,0.7395350817909581,0.9809011837692727,6.197388888888889,305.4282846161728,1
|
||||
21.185133333333333,21.185133333333333,21.185133333333333,75.24326644370123,0.8093004900506873,0.7839140546255797,0.9836709511954267,5.9201,316.1949215998766,1
|
||||
13.10971111111111,13.10971111111111,13.10971111111111,60.94265328874026,0.8476585498129703,0.822983800594812,0.9702278985133782,3.4749777777777777,146.0965111111111,1
|
||||
22.42837777777778,22.42837777777778,22.42837777777778,96.7321962095875,0.7939780441978322,0.7639337493277595,0.9796713978256991,5.910622222222222,307.26311111111113,1
|
||||
29.193655555555555,29.193655555555555,29.193655555555555,146.44609810479375,0.7004686790484342,0.6684017981052445,0.9678166584932378,9.631222222222222,505.2731278177779,1
|
||||
37.6165,37.6165,37.6165,61.77438127090301,0.7369944405021132,0.5066639219050131,0.9939349781933751,3.481422222222222,83.70399563654321,1
|
||||
17.78781111111111,17.78781111111111,17.78781111111111,90.23523968784839,0.821131382976734,0.7947451116759203,0.9752677038949622,5.349866666666666,285.79613735111116,1
|
||||
36.36394444444444,36.36394444444444,36.36394444444444,157.74952062430322,0.6298994931779305,0.5815438085234014,0.969421680596843,9.3205,443.4095155198766,1
|
|
|
@ -0,0 +1,91 @@
|
|||
import os
|
||||
import cv2
|
||||
import numpy as np
|
||||
import pandas as pd
|
||||
from skimage.feature import graycomatrix, graycoprops
|
||||
|
||||
def extract_rgb_features(image):
|
||||
"""Ekstraksi fitur warna RGB"""
|
||||
mean_r = np.mean(image[:, :, 2])
|
||||
mean_g = np.mean(image[:, :, 1])
|
||||
mean_b = np.mean(image[:, :, 0])
|
||||
return mean_r, mean_g, mean_b
|
||||
|
||||
def extract_glcm_features(image, distances=[1], angles=[0], levels=256, symmetric=True, normed=True):
|
||||
"""Ekstraksi fitur tekstur menggunakan GLCM"""
|
||||
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
|
||||
glcm = graycomatrix(gray_image, distances, angles, levels=levels, symmetric=symmetric, normed=normed)
|
||||
contrast = graycoprops(glcm, 'contrast')[0, 0]
|
||||
homogeneity = graycoprops(glcm, 'homogeneity')[0, 0]
|
||||
energy = graycoprops(glcm, 'energy')[0, 0]
|
||||
correlation = graycoprops(glcm, 'correlation')[0, 0]
|
||||
return contrast, homogeneity, energy, correlation
|
||||
|
||||
def extract_laplacian_features(image):
|
||||
"""Ekstraksi fitur tepi menggunakan Laplacian"""
|
||||
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
|
||||
laplacian = cv2.Laplacian(gray_image, cv2.CV_64F)
|
||||
mean_laplacian = np.mean(np.abs(laplacian))
|
||||
var_laplacian = np.var(laplacian)
|
||||
return mean_laplacian, var_laplacian
|
||||
|
||||
def process_folder(folder_path, label):
|
||||
"""Memproses semua gambar dalam folder tertentu dan mengekstrak fitur"""
|
||||
data = []
|
||||
file_count = len(os.listdir(folder_path))
|
||||
processed_count = 0
|
||||
|
||||
for filename in os.listdir(folder_path):
|
||||
if filename.endswith(('.png', '.jpg', '.jpeg')):
|
||||
file_path = os.path.join(folder_path, filename)
|
||||
image = cv2.imread(file_path)
|
||||
|
||||
if image is None:
|
||||
print(f"❌ [SKIP] Tidak dapat membaca file: {file_path}")
|
||||
continue # Lewati gambar yang tidak bisa dibaca
|
||||
|
||||
try:
|
||||
rgb_features = extract_rgb_features(image)
|
||||
glcm_features = extract_glcm_features(image)
|
||||
laplacian_features = extract_laplacian_features(image)
|
||||
|
||||
features = rgb_features + glcm_features + laplacian_features + (label,)
|
||||
data.append(features)
|
||||
|
||||
processed_count += 1
|
||||
print(f"✅ [{processed_count}/{file_count}] Berhasil diproses: {filename}")
|
||||
except Exception as e:
|
||||
print(f"❌ [ERROR] Gagal memproses {filename}: {e}")
|
||||
|
||||
return data
|
||||
|
||||
def main(folder1, folder2, output_excel, output_csv):
|
||||
"""Fungsi utama untuk ekstraksi fitur dari dua folder gambar"""
|
||||
columns = ['Mean_R', 'Mean_G', 'Mean_B', 'Contrast', 'Homogeneity', 'Energy', 'Correlation', 'Mean_Laplacian', 'Var_Laplacian', 'Label']
|
||||
|
||||
print("\n📂 Memproses folder Fresh Strawberry...")
|
||||
data1 = process_folder(folder1, 2) # Label 2 untuk Fresh Strawberry
|
||||
|
||||
print("\n📂 Memproses folder Rotten Strawberry...")
|
||||
data2 = process_folder(folder2, 1) # Label 1 untuk Rotten Strawberry
|
||||
|
||||
# Gabungkan kedua dataset
|
||||
all_data = data1 + data2
|
||||
|
||||
# Konversi ke DataFrame
|
||||
df = pd.DataFrame(all_data, columns=columns)
|
||||
|
||||
# Simpan ke file Excel dan CSV
|
||||
df.to_excel(output_excel, index=False)
|
||||
df.to_csv(output_csv, index=False)
|
||||
|
||||
print(f"\n✅ Data telah disimpan ke: {output_excel} dan {output_csv}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
# Ganti dengan path folder yang sesuai
|
||||
folder1 = r'C:\Users\user\Documents\dataset_stroberi\Stroberi_segar_BG_grayscale' # Fresh Strawberry
|
||||
folder2 = r'C:\Users\user\Documents\dataset_stroberi\Stroberi_busuk_BG_grayscale' # Rotten Strawberry
|
||||
output_excel = 'ekstraksi_citra_strawberry.xlsx' # Nama file output Excel
|
||||
output_csv = 'ekstraksi_citra_strawberry.csv' # Nama file output CSV
|
||||
|
||||
main(folder1, folder2, output_excel, output_csv)
|
|
@ -0,0 +1,67 @@
|
|||
import pandas as pd
|
||||
import joblib
|
||||
from sklearn.model_selection import train_test_split
|
||||
from sklearn.preprocessing import StandardScaler
|
||||
from sklearn.neighbors import KNeighborsClassifier
|
||||
from sklearn.metrics import accuracy_score, classification_report, confusion_matrix
|
||||
|
||||
# Load dataset
|
||||
data_path = r'C:\Users\user\Documents\dataset_stroberi\ekstraksi_citra_strawberry.csv'
|
||||
data = pd.read_csv(data_path)
|
||||
|
||||
# Pastikan hanya label 1 (Segar) dan 2 (Busuk)
|
||||
data = data[data['Label'].isin([1, 2])]
|
||||
|
||||
# Perbaiki label (1 = Busuk, 2 = Segar)
|
||||
data['Label'] = data['Label'].map({1: 0, 2: 1})
|
||||
|
||||
# Pisahkan fitur dan label
|
||||
feature_columns = ['Mean_R', 'Mean_G', 'Mean_B', 'Contrast', 'Homogeneity',
|
||||
'Energy', 'Correlation', 'Mean_Laplacian', 'Var_Laplacian']
|
||||
X = data[feature_columns]
|
||||
y = data['Label']
|
||||
|
||||
# Split data menjadi training & testing (dengan stratifikasi agar distribusi seimbang)
|
||||
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42, stratify=y)
|
||||
|
||||
# Normalisasi data
|
||||
scaler = StandardScaler()
|
||||
X_train = scaler.fit_transform(X_train)
|
||||
X_test = scaler.transform(X_test)
|
||||
|
||||
# Inisialisasi model KNN dengan optimasi jumlah tetangga
|
||||
knn = KNeighborsClassifier(n_neighbors=5)
|
||||
|
||||
# Training model
|
||||
knn.fit(X_train, y_train)
|
||||
|
||||
# Cek distribusi fitur sebelum scaling
|
||||
X_train_original = scaler.inverse_transform(knn._fit_X)
|
||||
df = pd.DataFrame(X_train_original, columns=feature_columns)
|
||||
print("\nStatistik fitur sebelum scaling:\n")
|
||||
print(df.describe())
|
||||
|
||||
# Prediksi & evaluasi
|
||||
y_pred = knn.predict(X_test)
|
||||
accuracy = accuracy_score(y_test, y_pred)
|
||||
|
||||
# Tampilkan hasil akurasi
|
||||
print(f'\nAkurasi Model KNN: {accuracy * 100:.2f}%')
|
||||
|
||||
# Evaluasi lebih lanjut
|
||||
print("\nConfusion Matrix:")
|
||||
print(confusion_matrix(y_test, y_pred))
|
||||
print("\nClassification Report:")
|
||||
print(classification_report(y_test, y_pred))
|
||||
|
||||
# Simpan model dan scaler dalam format joblib
|
||||
model_path = r'C:\Users\user\Documents\dataset_stroberi\strawberry_freshness_knn.pkl'
|
||||
scaler_path = r'C:\Users\user\Documents\dataset_stroberi\scaler_knn.pkl'
|
||||
|
||||
try:
|
||||
joblib.dump(knn, model_path)
|
||||
joblib.dump(scaler, scaler_path)
|
||||
print(f'\nModel disimpan dalam: {model_path}')
|
||||
print(f'Scaler disimpan dalam: {scaler_path}')
|
||||
except Exception as e:
|
||||
print(f'\nError menyimpan model atau scaler: {e}')
|
|
@ -0,0 +1,7 @@
|
|||
flask
|
||||
flask-cors
|
||||
numpy
|
||||
opencv-python
|
||||
pandas
|
||||
scikit-image
|
||||
scikit-learn
|
After Width: | Height: | Size: 213 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 160 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 175 KiB |
After Width: | Height: | Size: 7.9 KiB |
After Width: | Height: | Size: 53 KiB |
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 94 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 92 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 96 KiB |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 81 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 160 KiB |
After Width: | Height: | Size: 5.4 KiB |
After Width: | Height: | Size: 92 KiB |
After Width: | Height: | Size: 3.9 KiB |
After Width: | Height: | Size: 77 KiB |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 77 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 394 KiB |
After Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 79 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 91 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 75 KiB |
After Width: | Height: | Size: 6.8 KiB |
After Width: | Height: | Size: 95 KiB |
After Width: | Height: | Size: 3.6 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 3.9 KiB |
After Width: | Height: | Size: 167 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 3.9 KiB |
After Width: | Height: | Size: 336 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 336 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 3.9 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 3.9 KiB |
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 853 B |
After Width: | Height: | Size: 27 KiB |