انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: hamraaz در 29 آبان 1400، 11:23 قظ
-
با سلام
من برای پروژه های دانشگاهی نیاز دارم از کتابخانه opencv استفاده کنم اما هنگام اجرا با ارور segmentation fault (core dumped) مواجه میشم.
از درستی کد مطمئنم چون داخل ویندوز خروجی گرفتم. کتابخانه رو هم پاک کردم و مجدد نصب کردم یا از مفسر های مختلف استفاده کردم اما مشکل حل نشد.
ممنون میشم اگر راهنمایی کنید.
-
با ipython تست کن
-
کدت رو بذار ببینیم چشه.
-
سلام
اول از همه نسخه پایتون مطمئن بشید. برنامه باید روی پایتون نسخه ۳ اجرا بشه. پس به جای استفاده از دستور python مستقیما از دستور python3 استفاده کنید.
برای نصب کتابخانه از این دستور استفاده کنید:
python3 -m pip install --upgrade opencv-python
و برای اجرای برنامه همونطور که گفتم از دستور python3 استفاده کنید.
برای این که بدونید آیا مشکل از برنامه شماست یا از محیط، یک برنامه کوچک چند خطی برای تست بنویسید یا از اینترنت کپی کنید. برای مثال کل برنامه میتونه همین یک خط باشه:
import cv2
اگر اجرا شد، پس برید سراغ برنامه خودتون.
اگر همچنان مشکل پابرجا بود، کد رو اینجا بگذارید. شاید مشکل از اون باشه. مثلا ممکنه یک آرایه تعریف کردهباشید و سعی کنید به اعضایی که داخل آرایه نیستند دسترسی پیدا کنید. (هرچند کتابخانه opencv معمولا اینها رو تشخیص میده و قبل از سیستمعامل جلوی اجرای برنامه رو میگیره.)
-
با ipython تست کن
با ipython و notebook هم نتیجه مشابه بود.
-
کدت رو بذار ببینیم چشه.
کدش ساده اس و مشکلی هم نداره تست شده.
قصد داشتم مقدار روشنایی تصویری رو 50 تا بیشتر کنم.
import cv2
# # problem 1-1
# # Add a constant value of 50. The edited image is more brightness than the orginal image.
myImage = cv2.imread("pepper.jpg", cv2.IMREAD_GRAYSCALE)
for pixel in myImage:
for step in range(len(pixel)):
if pixel[step] >= 205:
pixel[step] = 255
else:
pixel[step] += 50
cv2.imshow('edited pepper', myImage)
cv2.waitKey(0)
cv2.destroyAllWindows()
-
سلام
اول از همه نسخه پایتون مطمئن بشید. برنامه باید روی پایتون نسخه ۳ اجرا بشه. پس به جای استفاده از دستور python مستقیما از دستور python3 استفاده کنید.
برای نصب کتابخانه از این دستور استفاده کنید:
python3 -m pip install --upgrade opencv-python
و برای اجرای برنامه همونطور که گفتم از دستور python3 استفاده کنید.
برای این که بدونید آیا مشکل از برنامه شماست یا از محیط، یک برنامه کوچک چند خطی برای تست بنویسید یا از اینترنت کپی کنید. برای مثال کل برنامه میتونه همین یک خط باشه:
import cv2
اگر اجرا شد، پس برید سراغ برنامه خودتون.
اگر همچنان مشکل پابرجا بود، کد رو اینجا بگذارید. شاید مشکل از اون باشه. مثلا ممکنه یک آرایه تعریف کردهباشید و سعی کنید به اعضایی که داخل آرایه نیستند دسترسی پیدا کنید. (هرچند کتابخانه opencv معمولا اینها رو تشخیص میده و قبل از سیستمعامل جلوی اجرای برنامه رو میگیره.)
من از آخرین نسخه پایتون استفاده می کنم و از خود کد هم مطمئنم چون رو چند سیستم ازش خروجی گرفتم و کد هم ساده اس.
باید مشکل از کتابخانه باشه به نظرم چون به محض استفاده از این کتابخانه یعنی وقتی اجرا میگیرم به این مشکل بر میخورم.
کد رو هم گذاشتم.
-
مشکل از ناسازگاری برنامهٔ نمایشدهندهٔ تصویر پیشگزیدهٔ opencv با ویلنده. میتونی به جای:
cv2.imshow('edited pepper', myImage)
cv2.waitKey(0)
cv2.destroyAllWindows()
بنویسی:
cv2.imwrite('edited.png', myImage)
تا ذخیرهاش کنه.
-
مشکل از ناسازگاری برنامهٔ نمایشدهندهٔ تصویر پیشگزیدهٔ opencv با ویلنده. میتونی به جای:
cv2.imshow('edited pepper', myImage)
cv2.waitKey(0)
cv2.destroyAllWindows()
بنویسی:
cv2.imwrite('edited.png', myImage)
تا ذخیرهاش کنه.
ممنونم جواب داد. راهی هست که مشکل رو به طور کلی حل کنم؟