Feat: Local Binary Pattern
This commit is contained in:
parent
939173f161
commit
311641f6e9
|
@ -160,242 +160,16 @@ def lbp(request):
|
||||||
print(f"Nilai histogram normalisasi yang paling sering muncul: {mode_lbp_value}")
|
print(f"Nilai histogram normalisasi yang paling sering muncul: {mode_lbp_value}")
|
||||||
print(f"Frekuensi ternormalisasi dari nilai yang paling sering muncul: {mode_lbp_frequency}")
|
print(f"Frekuensi ternormalisasi dari nilai yang paling sering muncul: {mode_lbp_frequency}")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Sistem Pakar Forward Chaining
|
|
||||||
hasil_operasi_Natrium = mode_lbp_frequency * 0.1928 + 0.021
|
hasil_operasi_Natrium = mode_lbp_frequency * 0.1928 + 0.021
|
||||||
round_natrium = round(hasil_operasi_Natrium, 2)
|
round_natrium = round(hasil_operasi_Natrium, 2)
|
||||||
print(f"hasil Nilai N (Natrium): {round_natrium}")
|
print(f"hasil Nilai N (Natrium): {round_natrium}")
|
||||||
N = hasil_operasi_Natrium
|
|
||||||
if N < 1.0:
|
|
||||||
Kategori_N = 1
|
|
||||||
elif N >= 1.0 and N < 2.0:
|
|
||||||
Kategori_N = 2
|
|
||||||
elif N >= 2.001 and N < 3.0:
|
|
||||||
Kategori_N = 3
|
|
||||||
elif N >= 3.001 and N < 5.0:
|
|
||||||
Kategori_N = 4
|
|
||||||
elif N >= 5.001:
|
|
||||||
Kategori_N = 5
|
|
||||||
else:
|
|
||||||
Kategori_N = 6
|
|
||||||
|
|
||||||
hasil_operasi_fosfor = (mode_lbp_frequency * -10.725) + 16.533
|
hasil_operasi_fosfor = (mode_lbp_frequency * -10.725) + 16.533
|
||||||
round_fosfor = round(hasil_operasi_fosfor, 2)
|
round_fosfor = round(hasil_operasi_fosfor, 2)
|
||||||
print(f"hasil Nilai P (Fosfor): {round_fosfor}")
|
print(f"hasil Nilai P (Fosfor): {round_fosfor}")
|
||||||
P = hasil_operasi_fosfor
|
|
||||||
if P < 10.0:
|
|
||||||
Kategori_P = 1
|
|
||||||
elif P > 10.001 and P <= 25.99:
|
|
||||||
Kategori_P = 2
|
|
||||||
elif P >= 26.0 and P <= 45.99:
|
|
||||||
Kategori_P = 3
|
|
||||||
elif P >= 46.0 and P <= 60:
|
|
||||||
Kategori_P = 4
|
|
||||||
elif P > 60.001:
|
|
||||||
Kategori_P = 5
|
|
||||||
else:
|
|
||||||
Kategori_P = 6
|
|
||||||
|
|
||||||
hasil_operasi_Kalium = mode_lbp_frequency * -0.1864 + 0.2471
|
hasil_operasi_Kalium = mode_lbp_frequency * -0.1864 + 0.2471
|
||||||
round_kalium = round(hasil_operasi_Kalium, 2)
|
round_kalium = round(hasil_operasi_Kalium, 2)
|
||||||
print(f"hasil Nilai K (Kalium): {round_kalium}")
|
|
||||||
K = hasil_operasi_Kalium
|
|
||||||
if K < 0.1:
|
|
||||||
Kategori_K = 1
|
|
||||||
elif K >= 0.1 and K <= 0.3999999999:
|
|
||||||
Kategori_K = 2
|
|
||||||
elif K >= 0.4 and K <= 0.599999999:
|
|
||||||
Kategori_K = 3
|
|
||||||
elif K >= 0.6 and K <= 1.0:
|
|
||||||
Kategori_K = 4
|
|
||||||
elif K > 1.0001:
|
|
||||||
Kategori_K = 5
|
|
||||||
else:
|
|
||||||
Kategori_K = 6
|
|
||||||
|
|
||||||
# Hasil perhitungan NPK
|
|
||||||
N = Kategori_N
|
|
||||||
P = Kategori_P
|
|
||||||
K = Kategori_K
|
|
||||||
|
|
||||||
# Nilai N, P, dan K yang ingin Anda cocokkan
|
|
||||||
target_N_sawah = 3
|
|
||||||
target_P_sawah = 4
|
|
||||||
target_K_sawah = 3
|
|
||||||
|
|
||||||
# lahan sawah irigasi
|
|
||||||
if N >= target_N_sawah and P >= target_P_sawah and K < target_K_sawah:
|
|
||||||
SaranTanaman1 = "Kategori S1 Sangat Sesuai Untuk Ditanami Sawah Irigasi, Wortel, Bawang Merah, Bawang Putih"
|
|
||||||
print(SaranTanaman1)
|
|
||||||
elif N == 2 and P == 3 and K == 2:
|
|
||||||
SaranTanaman1 = "Kategori S2 Cukup Sesuai (Sedang) Untuk Ditanami Sawah Irigasi, Wortel, Bawang Merah, Bawang Putih Namun memerlukan tambahan pupuk"
|
|
||||||
print(SaranTanaman1)
|
|
||||||
elif N == 1 and P >= 2 or P == 1 and K == 1:
|
|
||||||
SaranTanaman1 = "Kategori S3 Sesuai Marginal (Rendah) Untuk Ditanami Sawah Irigasi, Wortel, Bawang Merah, Bawang Putih Namun memerlukan tambahan pupuk yang lebih banyak"
|
|
||||||
print(SaranTanaman1)
|
|
||||||
elif N >= 1 and P <= 2 and K == 1:
|
|
||||||
SaranTanaman1 = "Kategori S3 Sesuai Marginal (Rendah) Untuk Ditanami Sawah Irigasi, Wortel, Bawang Merah, Bawang Putih Namun memerlukan tambahan pupuk yang lebih banyak"
|
|
||||||
print(SaranTanaman1)
|
|
||||||
elif N == 1 and P == 1 and K >= 1 or K == 1:
|
|
||||||
SaranTanaman1 = "Kategori S3 Sesuai Marginal (Rendah) Untuk Ditanami Sawah Irigasi, Wortel, Bawang Merah, Bawang Putih Namun memerlukan tambahan pupuk yang lebih banyak"
|
|
||||||
print(SaranTanaman1)
|
|
||||||
elif N == 1 and P >= 2 or P == 1 and K >= 1 or K == 1:
|
|
||||||
SaranTanaman1 = "Kategori S3 Sesuai Marginal (Rendah) Untuk Ditanami Sawah Irigasi, Wortel, Bawang Merah, Bawang Putih Namun memerlukan tambahan pupuk yang lebih banyak"
|
|
||||||
print(SaranTanaman1)
|
|
||||||
elif N >= 1 or N == 1 and P == 1 and K >= 1 or K == 1:
|
|
||||||
SaranTanaman1 = "Kategori S3 Sesuai Marginal (Rendah) Untuk Ditanami Sawah Irigasi, Wortel, Bawang Merah, Bawang Putih Namun memerlukan tambahan pupuk yang lebih banyak"
|
|
||||||
print(SaranTanaman1)
|
|
||||||
else:
|
|
||||||
SaranTanaman1 = "Tidak Cocok Untuk Ditanami Sawah Irigasi, Wortel, Bawang Merah, Bawang Putih Karena"
|
|
||||||
print(SaranTanaman1)
|
|
||||||
|
|
||||||
if N < target_N_sawah:
|
|
||||||
SaranTanaman1 = "Perlu Perbaikan N Untuk ditanami Sawah Irigasi, Wortel, Bawang Merah, Bawang Putih"
|
|
||||||
print(SaranTanaman1)
|
|
||||||
if N >= target_N_sawah:
|
|
||||||
SaranTanaman1 = "Sangat Cocok Untuk Ditanami Sawah Irigasi, Wortel, Bawang Merah, Bawang Putih"
|
|
||||||
print(SaranTanaman1)
|
|
||||||
else:
|
|
||||||
print("Hasil tidak cocok dengan data yang diberikan.")
|
|
||||||
|
|
||||||
if P < target_P_sawah:
|
|
||||||
SaranTanaman1 = "Perlu Perbaikan P Untuk ditanami Sawah Irigasi, Wortel, Bawang Merah, Bawang Putih"
|
|
||||||
print(SaranTanaman1)
|
|
||||||
if P >= target_P_sawah:
|
|
||||||
SaranTanaman1 = "Sangat Cocok Untuk Ditanami Sawah Irigasi, Wortel, Bawang Merah, Bawang Putih"
|
|
||||||
print(SaranTanaman1)
|
|
||||||
else:
|
|
||||||
print("Hasil tidak cocok dengan data yang diberikan.")
|
|
||||||
|
|
||||||
if K < target_K_sawah:
|
|
||||||
SaranTanaman1 = "Perlu Perbaikan K Untuk ditanami Sawah Irigasi, Wortel, Bawang Merah, Bawang Putih"
|
|
||||||
print(SaranTanaman1)
|
|
||||||
if K >= target_K_sawah:
|
|
||||||
SaranTanaman1 = "Sangat Cocok Untuk Ditanami Sawah Irigasi, Wortel, Bawang Merah, Bawang Putih"
|
|
||||||
print(SaranTanaman1)
|
|
||||||
else:
|
|
||||||
print("Hasil tidak cocok dengan data yang diberikan.")
|
|
||||||
|
|
||||||
# Nilai N, P, dan K yang ingin Anda cocokkan
|
|
||||||
target_N_jagung = 3
|
|
||||||
target_P_jagung = 4
|
|
||||||
target_K_jagung = 4
|
|
||||||
|
|
||||||
# lahan sawah irigasi
|
|
||||||
if N >= target_N_jagung and P >= target_P_jagung and K < target_K_jagung:
|
|
||||||
SaranTanaman2 = "Kategori S1 Sangat Sesuai Untuk Ditanami Jagung, Sorgum, Gandum, Kedelai, Kacang Tanah"
|
|
||||||
print(SaranTanaman2)
|
|
||||||
elif N == 2 and P == 3 and K == 3:
|
|
||||||
SaranTanaman2 = "Kategori S2 Cukup Sesuai (Sedang) Untuk Ditanami Jagung, Sorgum, Gandum, Kedelai, Kacang Tanah Namun memerlukan tambahan pupuk"
|
|
||||||
print(SaranTanaman2)
|
|
||||||
elif N == 1 and P >= 2 or P == 1 and K == 2:
|
|
||||||
SaranTanaman2 = "Kategori S3 Sesuai Marginal (Rendah) Untuk Ditanami Jagung, Sorgum, Gandum, Kedelai, Kacang Tanah Namun memerlukan tambahan pupuk yang lebih banyak"
|
|
||||||
print(SaranTanaman2)
|
|
||||||
elif N >= 1 or N == 1 and P == 1 and K == 1:
|
|
||||||
SaranTanaman2 = "Kategori S3 Sesuai Marginal (Rendah) Untuk Ditanami Jagung, Sorgum, Gandum, Kedelai, Kacang Tanah Namun memerlukan tambahan pupuk yang lebih banyak"
|
|
||||||
print(SaranTanaman2)
|
|
||||||
elif N == 1 and P == 1 and K >= 1 or K == 1:
|
|
||||||
SaranTanaman2 = "Kategori S3 Sesuai Marginal (Rendah) Untuk Ditanami Jagung, Sorgum, Gandum, Kedelai, Kacang Tanah Namun memerlukan tambahan pupuk yang lebih banyak"
|
|
||||||
print(SaranTanaman2)
|
|
||||||
elif N == 1 and P >= 2 or P == 1 and K >= 1 or K == 1:
|
|
||||||
SaranTanaman2 = "Kategori S3 Sesuai Marginal (Rendah) Untuk Ditanami Jagung, Sorgum, Gandum, Kedelai, Kacang Tanah Namun memerlukan tambahan pupuk yang lebih banyak"
|
|
||||||
print(SaranTanaman2)
|
|
||||||
elif N >= 1 or N == 1 and P == 1 and K >= 1 or K == 1:
|
|
||||||
SaranTanaman2 = "Kategori S3 Sesuai Marginal (Rendah) Untuk Ditanami Jagung, Sorgum, Gandum, Kedelai, Kacang Tanah Namun memerlukan tambahan pupuk yang lebih banyak"
|
|
||||||
print(SaranTanaman2)
|
|
||||||
else:
|
|
||||||
SaranTanaman2 = "Tidak Cocok Untuk Ditanami Jagung, Sorgum, Gandum, Kedelai, Kacang Tanah Karena"
|
|
||||||
print(SaranTanaman2)
|
|
||||||
|
|
||||||
if N < target_N_jagung:
|
|
||||||
SaranTanaman2 = "Perlu Perbaikan N Untuk ditanami Jagung, Sorgum, Gandum, Kedelai, Kacang Tanah"
|
|
||||||
print(SaranTanaman2)
|
|
||||||
if N >= target_N_jagung:
|
|
||||||
SaranTanaman2 = "Sangat Cocok Untuk Ditanami Jagung, Sorgum, Gandum, Kedelai, Kacang Tanah"
|
|
||||||
print(SaranTanaman2)
|
|
||||||
else:
|
|
||||||
print("Hasil tidak cocok dengan data yang diberikan.")
|
|
||||||
|
|
||||||
if P < target_P_jagung:
|
|
||||||
SaranTanaman2 = "Perlu Perbaikan P Untuk ditanami Jagung, Sorgum, Gandum, Kedelai, Kacang Tanah"
|
|
||||||
print(SaranTanaman2)
|
|
||||||
if P >= target_P_jagung:
|
|
||||||
SaranTanaman2 = "Sangat Cocok Untuk Ditanami Jagung, Sorgum, Gandum, Kedelai, Kacang Tanah"
|
|
||||||
print(SaranTanaman2)
|
|
||||||
else:
|
|
||||||
print("Hasil tidak cocok dengan data yang diberikan.")
|
|
||||||
|
|
||||||
if K < target_K_jagung:
|
|
||||||
SaranTanaman2 = "Perlu Perbaikan K Untuk ditanami Jagung, Sorgum, Gandum, Kedelai, Kacang Tanah"
|
|
||||||
print(SaranTanaman2)
|
|
||||||
if K >= target_K_jagung:
|
|
||||||
SaranTanaman2 = "Sangat Cocok Untuk Ditanami Jagung, Sorgum, Gandum, Kedelai, Kacang Tanah"
|
|
||||||
print(SaranTanaman2)
|
|
||||||
else:
|
|
||||||
print("Hasil tidak cocok dengan data yang diberikan.")
|
|
||||||
|
|
||||||
target_N_Ubi = 3
|
|
||||||
target_P_Ubi = 3
|
|
||||||
target_K_Ubi = 3
|
|
||||||
|
|
||||||
# lahan sawah irigasi
|
|
||||||
if N >= target_N_Ubi and P >= target_P_Ubi and K < target_K_Ubi:
|
|
||||||
SaranTanaman3 = (
|
|
||||||
"Kategori S1 Sangat Sesuai Untuk ditanami Ubi Kayu, Ubi Jalar"
|
|
||||||
)
|
|
||||||
print(SaranTanaman3)
|
|
||||||
elif N == 2 and P == 2 and K == 2:
|
|
||||||
SaranTanaman3 = "Kategori S2 Cukup Sesuai (Sedang) Untuk ditanami Ubi Kayu, Ubi Jalar Namun memerlukan tambahan pupuk"
|
|
||||||
print(SaranTanaman3)
|
|
||||||
elif N == 1 and P >= 1 or P == 1 and K == 1:
|
|
||||||
SaranTanaman3 = "Kategori S3 Sesuai Marginal (Rendah) Untuk ditanami Ubi Kayu, Ubi Jalar Namun memerlukan tambahan pupuk yang lebih banyak"
|
|
||||||
print(SaranTanaman3)
|
|
||||||
elif N >= 1 or N == 1 and P == 1 and K == 1:
|
|
||||||
SaranTanaman3 = "Kategori S3 Sesuai Marginal (Rendah) Untuk ditanami Ubi Kayu, Ubi Jalar Namun memerlukan tambahan pupuk yang lebih banyak"
|
|
||||||
print(SaranTanaman3)
|
|
||||||
elif N == 1 and P == 1 and K >= 1 or K == 1:
|
|
||||||
SaranTanaman3 = "Kategori S3 Sesuai Marginal (Rendah) Untuk ditanami Ubi Kayu, Ubi Jalar Namun memerlukan tambahan pupuk yang lebih banyak"
|
|
||||||
print(SaranTanaman3)
|
|
||||||
elif N == 1 and P >= 1 or P == 1 and K >= 1 or K == 1:
|
|
||||||
SaranTanaman3 = "Kategori S3 Sesuai Marginal (Rendah) Untuk ditanami Ubi Kayu, Ubi Jalar Namun memerlukan tambahan pupuk yang lebih banyak"
|
|
||||||
print(SaranTanaman3)
|
|
||||||
elif N >= 1 or N == 1 and P == 1 and K >= 1 or K == 1:
|
|
||||||
SaranTanaman3 = "Kategori S3 Sesuai Marginal (Rendah) Untuk ditanami Ubi Kayu, Ubi Jalar Namun memerlukan tambahan pupuk yang lebih banyak"
|
|
||||||
print(SaranTanaman3)
|
|
||||||
else:
|
|
||||||
SaranTanaman3 = "Tidak Cocok Untuk ditanami Ubi Kayu, Ubi Jalar Karena"
|
|
||||||
print(SaranTanaman3)
|
|
||||||
|
|
||||||
if N < target_N_Ubi:
|
|
||||||
SaranTanaman3 = "Perlu Perbaikan N Untuk ditanami Ubi Kayu, Ubi Jalar"
|
|
||||||
print(SaranTanaman3)
|
|
||||||
if N >= target_N_Ubi:
|
|
||||||
SaranTanaman3 = "Sangat Cocok Untuk ditanami Ubi Kayu, Ubi Jalar"
|
|
||||||
print(SaranTanaman3)
|
|
||||||
else:
|
|
||||||
print("Hasil tidak cocok dengan data yang diberikan.")
|
|
||||||
|
|
||||||
if P < target_P_Ubi:
|
|
||||||
SaranTanaman3 = "Perlu Perbaikan P Untuk ditanami Ubi Kayu, Ubi Jalar"
|
|
||||||
print(SaranTanaman3)
|
|
||||||
if P >= target_P_Ubi:
|
|
||||||
SaranTanaman3 = "Sangat Cocok Untuk ditanami Ubi Kayu, Ubi Jalar"
|
|
||||||
print(SaranTanaman3)
|
|
||||||
else:
|
|
||||||
print("Hasil tidak cocok dengan data yang diberikan.")
|
|
||||||
|
|
||||||
if K < target_K_Ubi:
|
|
||||||
SaranTanaman3 = "Perlu Perbaikan K Untuk ditanami Ubi Kayu, Ubi Jalar"
|
|
||||||
print(SaranTanaman3)
|
|
||||||
if K >= target_K_Ubi:
|
|
||||||
SaranTanaman3 = "Sangat Cocok Untuk ditanami Ubi Kayu, Ubi Jalar"
|
|
||||||
print(SaranTanaman3)
|
|
||||||
else:
|
|
||||||
print("Hasil tidak cocok dengan data yang diberikan.")
|
|
||||||
|
|
||||||
print(SaranTanaman1, ", dan ", SaranTanaman2, ", dan ", SaranTanaman3)
|
|
||||||
lbp_histogram = calculate_normalized_lbp_histogram(img_gray)
|
|
||||||
print("Program LBP selesai")
|
|
||||||
|
|
||||||
lbp(None)
|
lbp(None)
|
||||||
|
|
Loading…
Reference in New Issue