از پارسکدرز بیشترین بهره را ببرید و رویای کاری خود را زندگی کنید.
سه سال پیش منتشر شده
تعداد بازدید: 264
کد پروژه: 394785
شرح پروژه
5324:
سلام یه کد دارم
که میخوام ویرایش و تکمیل بشه با پایتون opencv
و از یه فولدر عکس ها رو بخونه
و بعد
این کد ماکزیمم ارتفاع رو محاسبه میکنه و تو اکسل ذخیره میکنه. حالا چیزهایی که ما میخواییم به این کد اضافه بشه اینه:
۱. روی هر کس یه زمان نوشته شده که عدد جلوش ms نوشته و اول از همه اونو تو هرکس بخونه و تو یه متغییر T بریزه.
۲. ادامه همین روش که عکس رو به باینری تبدیل و بعد کانتور و پیدا میکنه و کانتوری که ماکزیمم مساحت داره رو انتخاب میکنه و ما میخواییم که کانتور انتخاب شده رو تو عکس باینری نشون بده یعنی drawcontour رو عکس باینری انجام بده .
۳. بعد از اینکه ارتفاع محاسبه کرد در عکس باینری بما نشون بده
۴. در یک فایل اکسل پارامتر T و ارتفاع رو h رو ذخیره و چاپ کند (یعنی یک ستون زمان و ارتفاع اون عکس چاپ کنو بعد عکس بعدی به همین ترتیب که در اکسل ذخیره شود)
اینم کد هستش
import cv2
import os
import numpy as np
import matplotlib.pyplot as plt
# Specify the folder containing the JPEG files
folder_path="./fara/"
# Loop through all files in the folder
for file_name in os.listdir(folder_path):
if file_name.endswith(".jpg"):
# Load the image
image = cv2.imread(os.path.join(folder_path, file_name))
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# Convert the image to grayscale
# Apply a threshold to the grayscale image
threshold_value = 150
max_value = 255
_, thresholded_image = cv2.threshold(gray_image, threshold_value, max_value, cv2.THRESH_BINARY)
# Find the contour with the largest area, which is assumed to be the plume
contours, _ = cv2.findContours(thresholded_image, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
plume_contour = max(contours, key=cv2.contourArea)
# Calculate the bounding box of the plume contour
x, y, w, h = cv2.boundingRect(plume_contour)
#cv2.rectangle(thresholded_image, (x, y), (x+w, y+h), (0, 0, 255), 0)
image_with_contour= cv2.drawContours(image.copy(), [plume_contour], -1, (0, 255, 0), 2)
#image_with_contour= cv2.drawContours(thresholded_image, [plume_contour], -1, (0, 255, 0), 20)
height=[h]
#with open("my_data.csv", "a") as f:
#np.savetxt(f, height, fmt="%i")
#cv2.putText(image_with_contour, f"Max height: {height}", (88, 80), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)
#cv2.putText(thresholded_image, f"Max height: {height}", (88, 80), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)
#with open("my_data.txt", "a") as f:
#np.savetxt(f, height, fmt="%i")
new_file_name = file_name.replace(".jpg", "_plum_height.jpg")
new_file_path = os.path.join(folder_path, new_file_name)
with open("my_data.csv", "a") as f:
np.savetxt(f, height, fmt="%i")
# Save the thresholded image with the new file name
cv2.putText(image_with_contour, f"Max height: {height}", (88, 80), cv2.FONT_HERSHEY_SIMPLEX, 1, (255,255, 120), 2)
#cv2.imwrite(new_file_path, thresholded_image)
cv2.imwrite(new_file_path, image_with_contour)
#plt.imshow(image_with_contour)
#plt.imshow(thresholded_image)
#plt.show()
مهارت ها و تخصص های مورد نیاز
مهلت برای انجام
5روز
وضعیت مناقصه
بسته
درباره کارفرما
عضویت چهار سال پیش
نیاز به استخدام فریلنسر یا سفارش پروژه مشابه دارید؟
قادر به انجام این پروژه هستید؟
متأسفانه مهلت ارسال پیشنهاد این پروژه به پایان رسیده و پروژه بسته شده است؛ اما فرصتهای متعددی در سایت موجود میباشد.
پروژه شبیهسازی با ماکسول(5324)
سه سال پیش منتشر شده
به رایگان یک حساب کاربری بسازید
مهارتها و تخصصهای خود را ثبت کنید، رزومه و نمونهکارهای خود را نشان دهید و سوابق کاری خود را شرح دهید.
به شیوهای که دوست دارید کار کنید
برای پروژههای دلخواه در زمان دلخواه پیشنهاد قیمت خود را ثبت کنید و به فرصتهای شغلی منحصر به فرد دسترسی پیدا کنید.
با اطمینان دستمزد دریافت کنید
از زمان شروع کار تا انتهای کار به امنیت مالی شما کمک خواهیم کرد. وجه پروژه را از ابتدای کار به امانت در سایت نگه خواهیم داشت تا تضمین شودکه بعد از تحویل کار دستمزد شما پرداخت خواهد شد.
میخواهید شروع به کار کنید؟
یک حساب کاربری بسازید
بهترین مشاغل فریلنسری را پیدا کنید
رشد شغلی شما به راحتی ایجاد یک حساب کاربری رایگان و یافتن کار (پروژه) متناسب با مهارتهای شما
است.
پیدا کردن کار (پروژه)
تماشای دمو روش کار