Programmer
✅زبان جدید یاد بگیر : قسمت سوم : فرمت دهی در پایتون و جاوا 🐍☕ %d دسیمال (ده دهی) %f => floot %s =>String در اینجا ما به دسیمال میپردازیم : %0+,ld =>فرمت نوشتن فواصل خالی + علامت ، جدا کننده L طول d برای دسیمال هستش کد بالا داخل پایتون int_number…
✅زبان جدید یاد بگیر :
قسمت چهارم : فرمت دهی در پایتون و جاوا 🐍☕ ( floot)
جاوا (Java):
فرمتدهی با printf
پایتون (Python):
فرمتدهی با format یا f-string
نتیجه در هر دو زبان:
ساده: 1234.5678
دو رقم اعشار: 1234.57
با علامت مثبت: +1234.57
عرض 12: 1234.57
با صفر و عرض 12: 00001234.57
جداکننده هزارگان: -98,765.43
ترکیب همه: -098,765.43
.2f → نمایش عدد با دو رقم اعشار
+ → نمایش علامت مثبت برای اعداد مثبت
12 → حداقل عرض ۱۲ کاراکتر (راستچین)
0 → پر کردن با صفر در صورت نیاز
, → اضافه کردن جداکننده هزارگان
#programmer #java #Python #جاوا #پایتون
قسمت چهارم : فرمت دهی در پایتون و جاوا 🐍☕ ( floot)
جاوا (Java):
فرمتدهی با printf
public class Main {
public static void main(String[] args) {
float f = 1234.5678f;
double d = -98765.4321;
System.out.printf("ساده: %f\n", f);
System.out.printf("دو رقم اعشار: %.2f\n", f);
System.out.printf("با علامت مثبت: %+f\n", f);
System.out.printf("عرض 12: %12.2f\n", f);
System.out.printf("با صفر و عرض 12: %012.2f\n", f);
System.out.printf("جداکننده هزارگان: %,.2f\n", d);
System.out.printf("ترکیب همه: %+0,12.2f\n", d);
}
}پایتون (Python):
فرمتدهی با format یا f-string
f = 1234.5678
d = -98765.4321
print("ساده:", f)
print("دو رقم اعشار: {:.2f}".format(f))
print("با علامت مثبت: {:+.2f}".format(f))
print("عرض 12: {:12.2f}".format(f))
print("با صفر و عرض 12: {:012.2f}".format(f))
print("جداکننده هزارگان: {:,.2f}".format(d))
print("ترکیب همه: {:+012,.2f}".format(d))
نتیجه در هر دو زبان:
ساده: 1234.5678
دو رقم اعشار: 1234.57
با علامت مثبت: +1234.57
عرض 12: 1234.57
با صفر و عرض 12: 00001234.57
جداکننده هزارگان: -98,765.43
ترکیب همه: -098,765.43
.2f → نمایش عدد با دو رقم اعشار
+ → نمایش علامت مثبت برای اعداد مثبت
12 → حداقل عرض ۱۲ کاراکتر (راستچین)
0 → پر کردن با صفر در صورت نیاز
, → اضافه کردن جداکننده هزارگان
#programmer #java #Python #جاوا #پایتون
❤2😇2✍1👍1👌1
This media is not supported in your browser
VIEW IN TELEGRAM
فرق بین طراحی سایت در سال 2000 با سال 2020
البته الان باید AI هم بهش اضافه بشه 🤝✌️🤣
البته الان باید AI هم بهش اضافه بشه 🤝✌️🤣
🤣7❤1🗿1
به دوستان جدید خوش آمد میگم
این گروه رباتیکمون هستش
https://news.1rj.ru/str/ProfessionalRobotics
و این گروه هوش مصنوعی
https://news.1rj.ru/str/Artificial_Intelligence21
که با هم پروژه انجام میدیم 🤝
این گروه رباتیکمون هستش
https://news.1rj.ru/str/ProfessionalRobotics
و این گروه هوش مصنوعی
https://news.1rj.ru/str/Artificial_Intelligence21
که با هم پروژه انجام میدیم 🤝
Telegram
رباتیک
این گروه برای به اشتراک گذاری مقالات، ارتقای سطح در حوزه ی مهندسی رباتیک و ارتقای دانش ساخته شد
❤5💘3🥰1🤩1
Programmer
آموزش OpenCV - قسمت دوم: فیلترها (تغییر رنگ و تغییر سایز) 🔹 1. تبدیل تصویر به سیاه و سفید (Gray Scale) برای تبدیل تصویر به حالت سیاه و سفید، از تابع cv2.cvtColor استفاده میکنیم. کد نمونه: import cv2 img = cv2.imread('path_to_image.jpg') # بارگذاری تصویر…
آموزش opencv - قسمت سوم : (فیلتر های Blur و تشخیص لبه 😶🌫️⛰️)
😶🌫️ فیلترهای محوشدگی (Blurring Filters)
محوشدگی یکی از تکنیکهای پایه در پردازش تصویر است که برای کاهش نویز و صاف کردن تصویر استفاده میشود. در ادامه چند نوع فیلتر بلور معروف را معرفی میکنیم:
1. Averaging Blur (میانگینگیری)
بهسادگی میانگین تمام پیکسلهای اطراف یک پیکسل را حساب میکند و به عنوان مقدار جدید همان پیکسل استفاده میکند.
پارامتر هایی که میگیرد
Src
تصویر ورودی
Ksize
اندازه ی فیلتر
✅ کد:
2. Gaussian Blur (بلور گوسین)
محوشدگی نرمتری ایجاد میکند. در این روش پیکسلهای اطراف با توجه به فاصلهشان از مرکز وزندار میشوند (بر اساس تابع گوسین).
پارامتر هایی که میگیره :
Src
تصویر ورودی
Ksize
اندازه ی کرنل، یک تاپل میگیرد که هر عدد فرد و مثبت است
Sigmax
انحراف معیار در جهت x
اگر 0 بذاری خود برنامه مقدار مناسب رو میگذارد
✅ کد:
3. Median Blur (بلور میانهای)
برای حذف نویزهای خاص بسیار مؤثر است.
پیکسل میانی در یک ناحیه به عنوان مقدار جدید انتخاب میشود.
پارامتر هایی که میگیرد
Src
نام عکس
Ksize
فقط یک عدد صحیح فرد
✅ کد:
4. Bilateral Filter (فیلتر دوطرفه)
برخلاف سایر فیلترها، لبهها را حفظ میکند در حالیکه قسمتهای دیگر را محو میکند.
مناسب برای صافکردن تصویر بدون از بین بردن جزئیات.
Src
تصویر ورودی
D
قطر ناحیه ی فیلتر
Sigmacolor
میزان حساسیت به تفاوت رنگ
Sigmascap
میزان حساسیت به فاصله
✅ کد:
⛰️ تشخیص لبهها (Edge Detection)
تشخیص لبه یکی از مهمترین مراحل در پردازش تصویر و بینایی ماشین است. لبهها مکانهایی هستند که شدت نور بهطور ناگهانی تغییر میکند.
1. Canny Edge Detection
دقیق و رایجترین روش برای تشخیص لبه. شامل چند مرحله مثل فیلتر گوسین، پیدا کردن گرادیان و حذف لبههای ضعیف.
Image
تصویر ورودی
Thresholde1
آستانه ی پایین
Thresholde2
آستانه ی بالا
Aperturesize
اندازه ی کرنل فیلتر
L2gradient
اگر True باشه از فاصله ی اقلیدسی برای گرادیان استفاده می شود
✅ کد:
2. Sobel Filter
برای تشخیص لبهها در جهت افقی یا عمودی.
پارامتر آخر مشخص میکند که در جهت x یا y کار کند.
Src
تصویر میگیره
Ddepth
عمق تصویر
DX
مشتق در راستای x
Dy
مشتق در راستای y
Ksize
اندازه ی کرنل 1، 3،5، 7
✅ کد:
3. Laplacian Filter
از مشتق دوم استفاده میکند، بنابراین نسبت به Sobel شدیدتر عمل میکند.
پارامتر هایی که میگیرد :
Src
تصویر ورودی
Ddepth
عمق تصویر خروجی
Ksize
اندازه ی کرنل عدد صحیح فرد
Scale
ضریب مقیاس
Delta
مقدار افزوده شده به نتیجه
Bordertype
نوع مرز در لبه
✅ کد:
✅ کد نمونه کامل (ترکیب فیلتر بلور و تشخیص لبه)
نتیجه
#opencv #programmer #Python #پایتون
😶🌫️ فیلترهای محوشدگی (Blurring Filters)
محوشدگی یکی از تکنیکهای پایه در پردازش تصویر است که برای کاهش نویز و صاف کردن تصویر استفاده میشود. در ادامه چند نوع فیلتر بلور معروف را معرفی میکنیم:
1. Averaging Blur (میانگینگیری)
بهسادگی میانگین تمام پیکسلهای اطراف یک پیکسل را حساب میکند و به عنوان مقدار جدید همان پیکسل استفاده میکند.
پارامتر هایی که میگیرد
Src
تصویر ورودی
Ksize
اندازه ی فیلتر
✅ کد:
cv2.blur(img, (5, 5))
2. Gaussian Blur (بلور گوسین)
محوشدگی نرمتری ایجاد میکند. در این روش پیکسلهای اطراف با توجه به فاصلهشان از مرکز وزندار میشوند (بر اساس تابع گوسین).
پارامتر هایی که میگیره :
Src
تصویر ورودی
Ksize
اندازه ی کرنل، یک تاپل میگیرد که هر عدد فرد و مثبت است
Sigmax
انحراف معیار در جهت x
اگر 0 بذاری خود برنامه مقدار مناسب رو میگذارد
✅ کد:
cv2.GaussianBlur(img, (5, 5), 0)
3. Median Blur (بلور میانهای)
برای حذف نویزهای خاص بسیار مؤثر است.
پیکسل میانی در یک ناحیه به عنوان مقدار جدید انتخاب میشود.
پارامتر هایی که میگیرد
Src
نام عکس
Ksize
فقط یک عدد صحیح فرد
✅ کد:
cv2.medianBlur(img, 5)
4. Bilateral Filter (فیلتر دوطرفه)
برخلاف سایر فیلترها، لبهها را حفظ میکند در حالیکه قسمتهای دیگر را محو میکند.
مناسب برای صافکردن تصویر بدون از بین بردن جزئیات.
Src
تصویر ورودی
D
قطر ناحیه ی فیلتر
Sigmacolor
میزان حساسیت به تفاوت رنگ
Sigmascap
میزان حساسیت به فاصله
✅ کد:
cv2.bilateralFilter(img, 9, 75, 75)
⛰️ تشخیص لبهها (Edge Detection)
تشخیص لبه یکی از مهمترین مراحل در پردازش تصویر و بینایی ماشین است. لبهها مکانهایی هستند که شدت نور بهطور ناگهانی تغییر میکند.
1. Canny Edge Detection
دقیق و رایجترین روش برای تشخیص لبه. شامل چند مرحله مثل فیلتر گوسین، پیدا کردن گرادیان و حذف لبههای ضعیف.
Image
تصویر ورودی
Thresholde1
آستانه ی پایین
Thresholde2
آستانه ی بالا
Aperturesize
اندازه ی کرنل فیلتر
L2gradient
اگر True باشه از فاصله ی اقلیدسی برای گرادیان استفاده می شود
✅ کد:
cv2.Canny(img, 100, 200)
2. Sobel Filter
برای تشخیص لبهها در جهت افقی یا عمودی.
پارامتر آخر مشخص میکند که در جهت x یا y کار کند.
Src
تصویر میگیره
Ddepth
عمق تصویر
DX
مشتق در راستای x
Dy
مشتق در راستای y
Ksize
اندازه ی کرنل 1، 3،5، 7
✅ کد:
cv2.Sobel(img, cv2.CV_64F, 1, 0) # لبههای افقی
3. Laplacian Filter
از مشتق دوم استفاده میکند، بنابراین نسبت به Sobel شدیدتر عمل میکند.
پارامتر هایی که میگیرد :
Src
تصویر ورودی
Ddepth
عمق تصویر خروجی
Ksize
اندازه ی کرنل عدد صحیح فرد
Scale
ضریب مقیاس
Delta
مقدار افزوده شده به نتیجه
Bordertype
نوع مرز در لبه
✅ کد:
cv2.Laplacian(img, cv2.CV_64F)
✅ کد نمونه کامل (ترکیب فیلتر بلور و تشخیص لبه)
import cv2
# خواندن تصویر
img = cv2.imread('image.jpg')
# تبدیل به خاکستری
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# اعمال Gaussian Blur
blurred = cv2.GaussianBlur(gray, (5, 5), 0)
# تشخیص لبه با Canny
edges = cv2.Canny(blurred, 100, 200)
نتیجه
cv2.imshow("Original", img)
cv2.imshow("Blurred", blurred)
cv2.imshow("Edges", edges)
cv2.waitKey(0)
cv2.destroyAllWindows()#opencv #programmer #Python #پایتون
❤7✍2🔥1🤩1🦄1
Programmer
آموزش opencv - قسمت سوم : (فیلتر های Blur و تشخیص لبه 😶🌫️⛰️) 😶🌫️ فیلترهای محوشدگی (Blurring Filters) محوشدگی یکی از تکنیکهای پایه در پردازش تصویر است که برای کاهش نویز و صاف کردن تصویر استفاده میشود. در ادامه چند نوع فیلتر بلور معروف را معرفی میکنیم:…
آموزش OpenCV - پایان بخش اول: عملیات مورفولوژیک روی تصاویر سیاهوسفید
در پردازش تصویر، عملیات مورفولوژیک برای بهبود ظاهر تصویر و حذف نویز بهکار میره. این تکنیکها روی تصاویر باینری (سیاهوسفید) انجام میشن و باعث تغییر شکل نواحی سفید یا سیاه تصویر میشن.
🔸 1. فرسایش (Erosion):
قسمتهای سفید کوچیک تصویر حذف میشن. برای حذف نویزهای ریز کاربرد داره.
📌 کد نمونه:
🔸 2. گسترش (Dilation):
نواحی سفید بزرگتر میشن؛ مثل پر کردن سوراخها یا اتصال نقاط جدا.
📌 کد نمونه:
🔸 3. باز کردن (Opening):
ترکیب فرسایش + گسترش → برای حذف نویزهای کوچیک.
📌 کد نمونه:
🔸 4. بستن (Closing):
ترکیب گسترش + فرسایش → برای پر کردن سوراخهای کوچک و وصل کردن قسمتهای جدا.
📌 کد نمونه:
⚙️ نکات مهم:
قبل از اجرای عملیات، باید یک کرنل تعریف کنید. مثلاً:
با تغییر مقدار iterations میتونید شدت عملیات رو تنظیم کنید.
#Python #opencv #پردازش_تصویر
در پردازش تصویر، عملیات مورفولوژیک برای بهبود ظاهر تصویر و حذف نویز بهکار میره. این تکنیکها روی تصاویر باینری (سیاهوسفید) انجام میشن و باعث تغییر شکل نواحی سفید یا سیاه تصویر میشن.
🔸 1. فرسایش (Erosion):
قسمتهای سفید کوچیک تصویر حذف میشن. برای حذف نویزهای ریز کاربرد داره.
📌 کد نمونه:
cv2.erode(mask, kernel, iterations=1)
🔸 2. گسترش (Dilation):
نواحی سفید بزرگتر میشن؛ مثل پر کردن سوراخها یا اتصال نقاط جدا.
📌 کد نمونه:
cv2.dilate(mask, kernel, iterations=1)
🔸 3. باز کردن (Opening):
ترکیب فرسایش + گسترش → برای حذف نویزهای کوچیک.
📌 کد نمونه:
cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel)
🔸 4. بستن (Closing):
ترکیب گسترش + فرسایش → برای پر کردن سوراخهای کوچک و وصل کردن قسمتهای جدا.
📌 کد نمونه:
cv2.morphologyEx(mask, cv2.MORPH_CLOSE, kernel)
⚙️ نکات مهم:
قبل از اجرای عملیات، باید یک کرنل تعریف کنید. مثلاً:
kernel = np.ones((3,3), np.uint8)
با تغییر مقدار iterations میتونید شدت عملیات رو تنظیم کنید.
#Python #opencv #پردازش_تصویر
❤4👏3✍1🤩1
Programmer
آموزش OpenCV - پایان بخش اول: عملیات مورفولوژیک روی تصاویر سیاهوسفید در پردازش تصویر، عملیات مورفولوژیک برای بهبود ظاهر تصویر و حذف نویز بهکار میره. این تکنیکها روی تصاویر باینری (سیاهوسفید) انجام میشن و باعث تغییر شکل نواحی سفید یا سیاه تصویر میشن.…
تمرینات سه سطحی برای بخش اول
✅ تمرین 1 - آسون
🔹 هدف: تمرین خواندن، نمایش و تبدیل تصویر به حالت خاکستری و Resize
🔸 شرح تمرین:
یک تصویر از کامپیوترت انتخاب کن. با استفاده از OpenCV این کارها رو انجام بده:
1. تصویر رو بخون و نشون بده
2. اون رو به خاکستری تبدیل کن و نمایش بده
3. تصویر رو به اندازه 150×150 پیکسل تغییر بده و ذخیره کن با نام resized.jpg
✅ تمرین 2 - سطح متوسط
🔹 هدف: ترکیب فیلترهای بلور با تشخیص لبه
🔸 شرح تمرین:
یک تصویر رنگی بارگذاری کن و مراحل زیر رو انجام بده
1. اون رو به خاکستری تبدیل کن
با Gaussian Blur با سایز (5,5) روی اون فیلتر اعمال کن
3. لبهها رو با Canny تشخیص بده
4. سه تصویر رو در پنجرههای مختلف نمایش بده: اصلی، بلورشده، لبهها
در آخر تفاوتشون رو برسی کن
✅ تمرین 3 - پیشرفته
🔹 هدف: استفاده ترکیبی از عملیات مورفولوژیک و فیلترها
🔸 شرح تمرین:
1. یک تصویر با زمینه سفید و اشیاء سیاه (یا برعکس) انتخاب کن
2. تصویر رو به خاکستری و بعد باینری تبدیل کن (با cv2.threshold)
3. روی تصویر باینری عملیات Opening انجام بده برای حذف نویز
4. سپس عملیات Closing انجام بده برای اتصال نواحی
5. خروجی نهایی رو نمایش بده و مقایسه کن با تصویر اولیه
✅ تمرین 1 - آسون
🔹 هدف: تمرین خواندن، نمایش و تبدیل تصویر به حالت خاکستری و Resize
🔸 شرح تمرین:
یک تصویر از کامپیوترت انتخاب کن. با استفاده از OpenCV این کارها رو انجام بده:
1. تصویر رو بخون و نشون بده
2. اون رو به خاکستری تبدیل کن و نمایش بده
3. تصویر رو به اندازه 150×150 پیکسل تغییر بده و ذخیره کن با نام resized.jpg
✅ تمرین 2 - سطح متوسط
🔹 هدف: ترکیب فیلترهای بلور با تشخیص لبه
🔸 شرح تمرین:
یک تصویر رنگی بارگذاری کن و مراحل زیر رو انجام بده
1. اون رو به خاکستری تبدیل کن
با Gaussian Blur با سایز (5,5) روی اون فیلتر اعمال کن
3. لبهها رو با Canny تشخیص بده
4. سه تصویر رو در پنجرههای مختلف نمایش بده: اصلی، بلورشده، لبهها
در آخر تفاوتشون رو برسی کن
✅ تمرین 3 - پیشرفته
🔹 هدف: استفاده ترکیبی از عملیات مورفولوژیک و فیلترها
🔸 شرح تمرین:
1. یک تصویر با زمینه سفید و اشیاء سیاه (یا برعکس) انتخاب کن
2. تصویر رو به خاکستری و بعد باینری تبدیل کن (با cv2.threshold)
3. روی تصویر باینری عملیات Opening انجام بده برای حذف نویز
4. سپس عملیات Closing انجام بده برای اتصال نواحی
5. خروجی نهایی رو نمایش بده و مقایسه کن با تصویر اولیه
❤5✍1👍1🔥1
چالش این هفتتون چطور بود؟ به چند درصد از برنامه هایی که تنظیم کرده بودین رسیدین 🫂؟
Anonymous Poll
7%
به صد در صد برنامه هام رسیدم 😇
7%
به 75 درصد رسیدم 😁✌️
14%
تونستم به 50 درصد برسم 😎🌹
50%
به 25 درصد رسیدم 🤝🥲
21%
نشد که بشه، از این هفته شروع میکنم
✍️ مقالک
دیفیوژن چیه؟
دیفیوژن به فرایند پخش ذرات از یک ناحیه پر چگالی به ناحیه کم چگالی گفته میشه
☕ زبان ساده : ذرات از جای شلوغ به جای خلوت حرکت میکنن 😎
مثال : در سیالات وقتی یک قطره جوهر رو در آب می ریزیم جوهر به دلیل چگالی بیشتری که داره در تمام سطح آب پخش میشه ( بدون اینکه بخوایم نیرویی برای انجام این کار بذاریم) 🥲🤝
🔌 کاربرد در فیزیک الکترونیک:
توی نیمههادیها، الکترونها یا حفرهها خودشون از نواحی با تراکم بالا به نواحی با تراکم کمتر حرکت میکنن —
حتی بدون هیچ میدان الکتریکی یا باتری!
یعنی فقط به خاطر اختلاف تراکم ، جریان بهوجود میاد ⚡⚡
مثل وقتی که یه اتوبوس خالی وارد ایستگاه شلوغ میشه و همه هجوم میبرن که وارد شن تا برسن به یه جای خلوت 😅
🤖 کاربرد در هوش مصنوعی:
مدلهایی مثل DALL·E 2، Stable Diffusion و Sora از همین ایده استفاده میکنن.
📌 چی کار میکنن؟
1. اول یه تصویر کاملاً نویزی (بیمعنا) تولید میکنن
2. بعد مدل یاد میگیره که چطور دیفیوژن معکوس انجام بده
3. نتیجه؟ تبدیل نویز به یک تصویر واقعی و با معنا
💡 جمعبندی:
دیفیوژن یعنی حرکت طبیعی و بیزحمت از بینظمی به نظم.
هم تو طبیعت هست، هم تو مدارهای الکترونیکی، هم تو مغز هوش مصنوعیهای مدرن!
#هوش_مصنوعی #فیزیک #دیفیوژن #مدل_دیفیوژن #یادگیری_عمیق
دیفیوژن چیه؟
دیفیوژن به فرایند پخش ذرات از یک ناحیه پر چگالی به ناحیه کم چگالی گفته میشه
☕ زبان ساده : ذرات از جای شلوغ به جای خلوت حرکت میکنن 😎
مثال : در سیالات وقتی یک قطره جوهر رو در آب می ریزیم جوهر به دلیل چگالی بیشتری که داره در تمام سطح آب پخش میشه ( بدون اینکه بخوایم نیرویی برای انجام این کار بذاریم) 🥲🤝
🔌 کاربرد در فیزیک الکترونیک:
توی نیمههادیها، الکترونها یا حفرهها خودشون از نواحی با تراکم بالا به نواحی با تراکم کمتر حرکت میکنن —
حتی بدون هیچ میدان الکتریکی یا باتری!
یعنی فقط به خاطر اختلاف تراکم ، جریان بهوجود میاد ⚡⚡
مثل وقتی که یه اتوبوس خالی وارد ایستگاه شلوغ میشه و همه هجوم میبرن که وارد شن تا برسن به یه جای خلوت 😅
🤖 کاربرد در هوش مصنوعی:
مدلهایی مثل DALL·E 2، Stable Diffusion و Sora از همین ایده استفاده میکنن.
📌 چی کار میکنن؟
1. اول یه تصویر کاملاً نویزی (بیمعنا) تولید میکنن
2. بعد مدل یاد میگیره که چطور دیفیوژن معکوس انجام بده
3. نتیجه؟ تبدیل نویز به یک تصویر واقعی و با معنا
💡 جمعبندی:
دیفیوژن یعنی حرکت طبیعی و بیزحمت از بینظمی به نظم.
هم تو طبیعت هست، هم تو مدارهای الکترونیکی، هم تو مغز هوش مصنوعیهای مدرن!
#هوش_مصنوعی #فیزیک #دیفیوژن #مدل_دیفیوژن #یادگیری_عمیق
✍4❤3🔥2🤩2🦄1
Programmer
✅زبان جدید یاد بگیر : قسمت چهارم : فرمت دهی در پایتون و جاوا 🐍☕ ( floot) جاوا (Java): فرمتدهی با printf public class Main { public static void main(String[] args) { float f = 1234.5678f; double d = -98765.4321; System.out.printf("ساده:…
✅زبان جدید یاد بگیر :
قسمت پنجم :
✍️ بخش اول: گرفتن ورودی از کاربر با Scanner و System.in
برای اینکه برنامه جاوا بتونه از کاربر ورودی بگیره، از کلاس Scanner استفاده میکنیم:
در اینجا:
در System.in یعنی ورودی از کیبورد گرفته بشه.
اگر بخوای از منبع دیگهای ورودی بگیری:
از فایل:
از متن ثابت:
از بایتها:
اما برای بیشتر برنامهها، همون System.in برای کار با کاربر کافیه.
✍️ بخش دوم: دستور switch
برای بررسی چند حالت مختلف از یک متغیر، به جای ifهای تکراری، از switch استفاده میکنیم.
🧑💻 ساختار کلی:
توضیحات :
خب در قسمت متغیر شما میتونید از کیبورد مقدار رو بگیرید با دستور Scanner
یا خودتون یک مقدار از قبل مشخص کنید
اینجا برسی میکنه اگر مقدار جلوی عبارت case با مقدار متغیر برابر بود دستور زیر اون case رو اجرا میکنه
اگر break نذاری چی میشه؟ 🧐
پشت سر هم، همه رو اجرا میکنه
مثال :
قسمت پنجم :
✍️ بخش اول: گرفتن ورودی از کاربر با Scanner و System.in
برای اینکه برنامه جاوا بتونه از کاربر ورودی بگیره، از کلاس Scanner استفاده میکنیم:
import java.util.Scanner;
بالا, اول کار اسکنر رو import کن
Scanner input = new Scanner(System.in);
در اینجا:
در System.in یعنی ورودی از کیبورد گرفته بشه.
اگر بخوای از منبع دیگهای ورودی بگیری:
از فایل:
new Scanner(new File("input.txt"))از متن ثابت:
new Scanner(new StringReader("Hello"))از بایتها:
new Scanner(new ByteArrayInputStream(...))
اما برای بیشتر برنامهها، همون System.in برای کار با کاربر کافیه.
✍️ بخش دوم: دستور switch
برای بررسی چند حالت مختلف از یک متغیر، به جای ifهای تکراری، از switch استفاده میکنیم.
🧑💻 ساختار کلی:
switch (متغیر) {
case 1:
// دستورات
break;
case 2:
// دستورات
break;
default:
// در صورت عدم تطابق با هیچ
}توضیحات :
خب در قسمت متغیر شما میتونید از کیبورد مقدار رو بگیرید با دستور Scanner
یا خودتون یک مقدار از قبل مشخص کنید
اینجا برسی میکنه اگر مقدار جلوی عبارت case با مقدار متغیر برابر بود دستور زیر اون case رو اجرا میکنه
اگر break نذاری چی میشه؟ 🧐
پشت سر هم، همه رو اجرا میکنه
مثال :
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in); // دریافت ورودی از کیبورد
System.out.print("عدد روز هفته را وارد کنید (1 تا 7): ");
int n = input.nextInt(); // خواندن عدد وارد شده
String day;
switch (n) {
case 1:
day = "شنبه";
break;
case 2:
day = "یکشنبه";
break;
case 3:
day = "دوشنبه";
break;
case 4:
day = "سهشنبه";
break;
case 5:
day = "چهارشنبه";
break;
case 6:
day = "پنجشنبه";
break;
case 7:
day = "جمعه";
break;
default:
day = "عدد نامعتبر است!";
}
System.out.println("نتیجه: " + day);
}
}
❤2✍1💘1🦄1
This media is not supported in your browser
VIEW IN TELEGRAM
یکی از نرم افزار هایی که خیلی از استفاده کردنش لذت میبرم سالیدورکزه
ولی خب فرض کن شما طراحی کردی و میخوای مدل سه بعدی رو داخل سایت بارگذاری کنی، اینجاست که از three.js استفاده میکنی
ولی فرمت stl سالیدورکز باید تبدیل بشه
در ادامه توضیح میدم چی کار باید انجام بدین تا به فرمت مناسب تبدیلش کنید
فرمت مناسب برای استفاده در Three.js:
فرمت مناسب؟
STL
❌فقط مش خالی، بدون رنگ و متریال
OBJ+MTL
✅ساده و قدیمی، متریال جداست
FBX
✅سنگین و با پشتیبانی از انیمیشن
GLB / glTF
✅✅بهترین انتخاب، فشرده، با متریال و انیمیشن
✅ بهترین انتخاب برای سایت: GLB
سرعت سایت چطور میشه؟
مدلهای سنگین = لود کند
حتماً باید:
پلیگانها رو کم کنی (ریتوپولوژی)
از glb استفاده کنی (سبک و سریع)
بافت و متریال رو درست تنظیم کنی
🛠️ مراحل کلی تبدیل:
1. خروجی گرفتن از SolidWorks به STL یا STEP
2. وارد کردن در Blender
3. تنظیم نور، متریال، انیمیشن (در صورت نیاز)
4. خروجی گرفتن به .glb
ولی خب فرض کن شما طراحی کردی و میخوای مدل سه بعدی رو داخل سایت بارگذاری کنی، اینجاست که از three.js استفاده میکنی
ولی فرمت stl سالیدورکز باید تبدیل بشه
در ادامه توضیح میدم چی کار باید انجام بدین تا به فرمت مناسب تبدیلش کنید
فرمت مناسب برای استفاده در Three.js:
فرمت مناسب؟
STL
❌فقط مش خالی، بدون رنگ و متریال
OBJ+MTL
✅ساده و قدیمی، متریال جداست
FBX
✅سنگین و با پشتیبانی از انیمیشن
GLB / glTF
✅✅بهترین انتخاب، فشرده، با متریال و انیمیشن
✅ بهترین انتخاب برای سایت: GLB
سرعت سایت چطور میشه؟
مدلهای سنگین = لود کند
حتماً باید:
پلیگانها رو کم کنی (ریتوپولوژی)
از glb استفاده کنی (سبک و سریع)
بافت و متریال رو درست تنظیم کنی
🛠️ مراحل کلی تبدیل:
1. خروجی گرفتن از SolidWorks به STL یا STEP
2. وارد کردن در Blender
3. تنظیم نور، متریال، انیمیشن (در صورت نیاز)
4. خروجی گرفتن به .glb
❤4✍2🙏2👌2🦄1
خب دوستان فکر کنم شنیدین مکتب خونه 100 دوره رو رایگان گذاشته
البته یکی از دوره هایی که رایگان شده رو میتونید با کد HAMDELI رایگان دریافت کنید
روش کار به چه صورت؟
اول برید آموزش رو انتخاب کنید
دوم داخل خود آموزش یک باکس آبی رنگ هست، تیک دسترسی کامل رو بردارید
سوم کد تخفیف رو وارد کنید
و اون رو تهیه کنید
که دوره ی هک و امنیت جادی
ماشین لرنینگ
جنگو
و...
هم داخلش هست
لیست دوره ها رو میتونید از لینک زیر ببینید
لینک...
البته یکی از دوره هایی که رایگان شده رو میتونید با کد HAMDELI رایگان دریافت کنید
روش کار به چه صورت؟
اول برید آموزش رو انتخاب کنید
دوم داخل خود آموزش یک باکس آبی رنگ هست، تیک دسترسی کامل رو بردارید
سوم کد تخفیف رو وارد کنید
و اون رو تهیه کنید
که دوره ی هک و امنیت جادی
ماشین لرنینگ
جنگو
و...
هم داخلش هست
لیست دوره ها رو میتونید از لینک زیر ببینید
لینک...
❤8✍2
Programmer
تمرینات سه سطحی برای بخش اول ✅ تمرین 1 - آسون 🔹 هدف: تمرین خواندن، نمایش و تبدیل تصویر به حالت خاکستری و Resize 🔸 شرح تمرین: یک تصویر از کامپیوترت انتخاب کن. با استفاده از OpenCV این کارها رو انجام بده: 1. تصویر رو بخون و نشون بده 2. اون رو به خاکستری…
آموزش OpenCV - بخش دوم (قسمت اول)
خواندن ویدئو از فایل:
در این قسمت قصد داریم ویدئو را فریم به فریم بخونیم و نمایش بدیم
1. ابتدا فایل ویدئو را با کمک تابع VideoCapture بارگذاری میکنیم.
2. سپس در یک حلقه، هر فریم را میخوانیم، هر فریم در متغیر frame ذخیره میشود
3. اگر خواندن موفق بود، فریم را نمایش میدهیم با دستور imshow
4. اگر کلید q فشار داده شود، حلقه متوقف میشود ( یعنی ویدئو متوقف میشود)
5. در پایان منابع آزاد شده و تمام پنجرهها بسته میشوند با کم دستور destroyAllwindows
خب دستور isOpened اینجا چی میگه ؟
در اصل اون چک میکنه ببینه وب کم یا دوربین روشنه با اگر بود وار حلقه میشه
چون اگر True بذاریم بجاش و دوربین شناسایی نشه برامون خطا بر میگردونه
کد نمونه:
نکته:
اگر فایل وجود نداشته باشه یا به پایان فیلم برسه، مقدار ret برابر False هستش .
همزمان ضبط فیلم و ذخیره آن:
برای ضبط همزمان فیلم از دوربین (وبکم) و ذخیره آن، باید از کدک مناسب استفاده کنیم. کدک (Codec) مخفف عبارت "Coder-Decoder" است که وظیفه فشردهسازی و بازگشایی دادههای تصویری را بر عهده دارد.
در اینجا نمونه کدی برای ضبط تصویر از وبکم و ذخیره آن آورده شده است:
نکات مهم:
- قبل از شروع ضبط، باید عرض و ارتفاع فریمها مشخص شود؛ این مقادیر باید با ابعاد واقعی تصویر مطابقت داشته باشد.
- برای تعیین عرض و ارتفاع هر فریم میتوانید از cap.get(cv2.CAP_PROP_FRAME_WIDTH) و cap.get(cv2.CAP_PROP_FRAME_HEIGHT) استفاده کنید.
- اطمینان حاصل کنید که کدک مورد استفاده روی سیستم شما نصب شده است.
توضیحات بیشتر درباره کدکها:
- کدکها جریانی از دادههای تصویری هستند که وظیفه فشردهسازی یا بازگشایی آنها را بر عهده دارند.
- هنگام ضبط فیلم، باید نوع کدک مناسب انتخاب شود تا کیفیت مطلوب حفظ شود.
خواندن ویدئو از فایل:
در این قسمت قصد داریم ویدئو را فریم به فریم بخونیم و نمایش بدیم
1. ابتدا فایل ویدئو را با کمک تابع VideoCapture بارگذاری میکنیم.
2. سپس در یک حلقه، هر فریم را میخوانیم، هر فریم در متغیر frame ذخیره میشود
3. اگر خواندن موفق بود، فریم را نمایش میدهیم با دستور imshow
4. اگر کلید q فشار داده شود، حلقه متوقف میشود ( یعنی ویدئو متوقف میشود)
5. در پایان منابع آزاد شده و تمام پنجرهها بسته میشوند با کم دستور destroyAllwindows
خب دستور isOpened اینجا چی میگه ؟
در اصل اون چک میکنه ببینه وب کم یا دوربین روشنه با اگر بود وار حلقه میشه
چون اگر True بذاریم بجاش و دوربین شناسایی نشه برامون خطا بر میگردونه
کد نمونه:
import cv2
بارگذاری ویدئو از فایل
cap = cv2.VideoCapture('video.mp4')
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
cv2.imshow('Video', frame)
خروج با زدن کلید q
if cv2.waitKey(25) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
نکته:
اگر فایل وجود نداشته باشه یا به پایان فیلم برسه، مقدار ret برابر False هستش .
همزمان ضبط فیلم و ذخیره آن:
برای ضبط همزمان فیلم از دوربین (وبکم) و ذخیره آن، باید از کدک مناسب استفاده کنیم. کدک (Codec) مخفف عبارت "Coder-Decoder" است که وظیفه فشردهسازی و بازگشایی دادههای تصویری را بر عهده دارد.
در اینجا نمونه کدی برای ضبط تصویر از وبکم و ذخیره آن آورده شده است:
import cv2
cap = cv2.VideoCapture(0)
تعیین کدک مورد نظر (در اینجا XVID)
fourcc = cv2.VideoWriter_fourcc(*'XVID')
تعریف VideoWriter برای ذخیره فایل خروجی
out = cv2.VideoWriter('output.avi', fourcc, 25.0, (640, 480))
while cap.isOpened():
ret, frame = cap.read()
if ret:
نوشتن فریم در فایل خروجی
out.write(frame)
نمایش فریم در پنجره
cv2.imshow('Webcam', frame)
خروج با زدن کلید q
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()
نکات مهم:
- قبل از شروع ضبط، باید عرض و ارتفاع فریمها مشخص شود؛ این مقادیر باید با ابعاد واقعی تصویر مطابقت داشته باشد.
- برای تعیین عرض و ارتفاع هر فریم میتوانید از cap.get(cv2.CAP_PROP_FRAME_WIDTH) و cap.get(cv2.CAP_PROP_FRAME_HEIGHT) استفاده کنید.
- اطمینان حاصل کنید که کدک مورد استفاده روی سیستم شما نصب شده است.
توضیحات بیشتر درباره کدکها:
- کدکها جریانی از دادههای تصویری هستند که وظیفه فشردهسازی یا بازگشایی آنها را بر عهده دارند.
- هنگام ضبط فیلم، باید نوع کدک مناسب انتخاب شود تا کیفیت مطلوب حفظ شود.
❤3✍1😍1😘1
Programmer
خب دوستان فکر کنم شنیدین مکتب خونه 100 دوره رو رایگان گذاشته البته یکی از دوره هایی که رایگان شده رو میتونید با کد HAMDELI رایگان دریافت کنید روش کار به چه صورت؟ اول برید آموزش رو انتخاب کنید دوم داخل خود آموزش یک باکس آبی رنگ هست، تیک دسترسی کامل رو…
بچه ها این رو تا 27 ام وقت دارید، یعنی تا دوشنبه
❤2🥰2👌1
Forwarded from codepedia (Mahsa)
تفاوت Run و Run as administrator 😁
گزینه Run: اجرای برنامه با دسترسی معمولی کاربر.
گزینه Run as Administrator: اجرای برنامه با دسترسی مدیریتی (admin)، یعنی برنامه میتونه به فایلها و تنظیمات سیستمی دسترسی داشته باشه.
🆔 @code_pedia
گزینه Run: اجرای برنامه با دسترسی معمولی کاربر.
گزینه Run as Administrator: اجرای برنامه با دسترسی مدیریتی (admin)، یعنی برنامه میتونه به فایلها و تنظیمات سیستمی دسترسی داشته باشه.
🆔 @code_pedia
🤣5❤1
Programmer
جزوات و سرفصل های هوش مصنوعی : 1) زبان برنامه نویسی : دانلود جزوه ی پایتون⬇️ آموزش رایگان پایتون ( تاپلرن) ⬇️ دانلود جزوه ی زبان R ⬇️ کتابخانه های پایتون : دانلود جزوه ی کولب numpy ⬇️ دانلود جزوه ی Pandas ⬇️ دانلود جزوه ی کولب pandas⬇️ دانلود جزوه…
آزمون پایتون :
این آزمون شامل ۲۵ سواله و محدودیت زمانی نداره
این آزمون رسمی نیستش ، فقط یک راه خوب برای فهمیدن سطحتونه
تمریناتش جامع تره خواستید اونا رو هم امتحان کنید
Python Quiz :
https://share.google/u10ZVQZMQ1Qsyl00c
این آزمون شامل ۲۵ سواله و محدودیت زمانی نداره
این آزمون رسمی نیستش ، فقط یک راه خوب برای فهمیدن سطحتونه
تمریناتش جامع تره خواستید اونا رو هم امتحان کنید
Python Quiz :
https://share.google/u10ZVQZMQ1Qsyl00c
W3Schools
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.
🔥3🆒2
Programmer
آموزش OpenCV - بخش دوم (قسمت اول) خواندن ویدئو از فایل: در این قسمت قصد داریم ویدئو را فریم به فریم بخونیم و نمایش بدیم 1. ابتدا فایل ویدئو را با کمک تابع VideoCapture بارگذاری میکنیم. 2. سپس در یک حلقه، هر فریم را میخوانیم، هر فریم در متغیر frame ذخیره…
آموزش Opencv - بخش دوم ( قسمت دوم)
۱. ایجاد یک تصویر خالی
سه حالت اصلی برای ایجاد تصویر داریم:
# تصویر با رنگ رندوم
۲. ترسیم خط (cv2.line)
۳. ترسیم دایره (cv2.circle)
🔹 وقتی thickness = -1 باشه، شکل پر کشیده میشه.
۴. ترسیم مستطیل (cv2.rectangle)
۵. نمایش تصویر
⛔️ خروجی: یک تصویر مشکی که روش خط، دایره و مستطیل کشیده شده.
🖱 رویدادهای موس در OpenCV
تابع اصلی برای گرفتن رویداد موس:
شکل تابع callback:
📌 مهمترین رویدادها (event):
مقدار توضیح
cv2.EVENT_MOUSEMOVE
حرکت موس
cv2.EVENT_LBUTTONDOWN
کلیک چپ پایین
cv2.EVENT_LBUTTONUP
کلیک چپ بالا
cv2.EVENT_LBUTTONDBLCLK
دابل کلیک چپ
cv2.EVENT_RBUTTONDOWN
کلیک راست پایین
cv2.EVENT_RBUTTONUP
کلیک راست بالا
cv2.EVENT_RBUTTONDBLCLK
دابل کلیک راست
cv2.EVENT_MBUTTONDOWN
کلیک وسط پایین
cv2.EVENT_MBUTTONUP
کلیک وسط بالا
cv2.EVENT_MBUTTONDBLCLK
دابل کلیک وسط
cv2.EVENT_MOUSEWHEEL
اسکرول عمودی
cv2.EVENT_MOUSEHWHEEL
اسکرول افقی
🎨 مثال: رسم دایره رنگی با کلیک موس
#programmer #Python #opencv
۱. ایجاد یک تصویر خالی
سه حالت اصلی برای ایجاد تصویر داریم:
import cv2
import numpy as np
import random
# تصویر مشکی
img_black = np.zeros((500, 500, 3), dtype=np.uint8)
# تصویر سفید
img_white = np.ones((500, 500, 3), dtype=np.uint8) * 255
# تصویر با رنگ رندوم
img_random = np.random.randint(0, 256, (500, 500, 3), dtype=np.uint8)
۲. ترسیم خط (cv2.line)
# cv2.line(image, start_point, end_point, color, thickness)
cv2.line(img_black, (50, 50), (450, 50), (0, 255, 0), 3)
# خط سبز از نقطه (50,50) تا (450,50)
۳. ترسیم دایره (cv2.circle)
# cv2.circle(image, center, radius, color, thickness)
cv2.circle(img_black, (250, 250), 100, (255, 0, 0), 5)
# دایره آبی با شعاع 100
cv2.circle(img_black, (250, 250), 50, (0, 0, 255), -1)
# دایره قرمز پر شده
🔹 وقتی thickness = -1 باشه، شکل پر کشیده میشه.
۴. ترسیم مستطیل (cv2.rectangle)
# cv2.rectangle(image, top_left, bottom_right, color, thickness)
cv2.rectangle(img_black, (100, 100), (400, 400), (0, 255, 255), 2) # مستطیل زرد
۵. نمایش تصویر
cv2.imshow("Shapes", img_black)
cv2.waitKey(0)
cv2.destroyAllWindows()⛔️ خروجی: یک تصویر مشکی که روش خط، دایره و مستطیل کشیده شده.
🖱 رویدادهای موس در OpenCV
تابع اصلی برای گرفتن رویداد موس:
cv2.setMouseCallback(window_name, function_name)
شکل تابع callback:
def callback(event, x, y, flags, param):
pass
event → نوع رویداد موس (کلیک، حرکت، …)
x, y → مختصات مکان موس روی تصویر
flags → وضعیت دکمهها یا کلیدهای ترکیبی (مثلاً Ctrl + کلیک)
param → پارامتر اضافه که میتونی خودت تعریف کنی
📌 مهمترین رویدادها (event):
مقدار توضیح
cv2.EVENT_MOUSEMOVE
حرکت موس
cv2.EVENT_LBUTTONDOWN
کلیک چپ پایین
cv2.EVENT_LBUTTONUP
کلیک چپ بالا
cv2.EVENT_LBUTTONDBLCLK
دابل کلیک چپ
cv2.EVENT_RBUTTONDOWN
کلیک راست پایین
cv2.EVENT_RBUTTONUP
کلیک راست بالا
cv2.EVENT_RBUTTONDBLCLK
دابل کلیک راست
cv2.EVENT_MBUTTONDOWN
کلیک وسط پایین
cv2.EVENT_MBUTTONUP
کلیک وسط بالا
cv2.EVENT_MBUTTONDBLCLK
دابل کلیک وسط
cv2.EVENT_MOUSEWHEEL
اسکرول عمودی
cv2.EVENT_MOUSEHWHEEL
اسکرول افقی
🎨 مثال: رسم دایره رنگی با کلیک موس
import cv2
import numpy as np
import random
# ایجاد تصویر سفید
img = np.ones((500, 500, 3), dtype=np.uint8) * 255
# تابع هندل کردن رویداد موس
def draw_circle(event, x, y, flags, param):
if event == cv2.EVENT_LBUTTONDOWN: # وقتی کلیک چپ شد
# رنگ رندوم
color = (random.randint(0,255), random.randint(0,255), random.randint(0,255))
# دایره بکشیم
cv2.circle(img, (x, y), 30, color, -1)
# نمایش پنجره
cv2.namedWindow("Canvas")
cv2.setMouseCallback("Canvas", draw_circle)
while True:
cv2.imshow("Canvas", img)
if cv2.waitKey(1) & 0xFF == 27: # کلید Esc برای خروج
break
cv2.destroyAllWindows()
#programmer #Python #opencv
❤6🦄2🤩1🕊1
دوره ی mlops با تخفیف ۷۰ درصد هم اکنون در سایت مکتب خونه منتشر شده این تخفیف حداکثر تا اخر شب فعال هستش
https://mktb.me/ejee/
برای اطلاعات بیشتر به آیدی زیر پیام دهید 🙏🌹
@reza_Mahmooudi
https://mktb.me/ejee/
برای اطلاعات بیشتر به آیدی زیر پیام دهید 🙏🌹
@reza_Mahmooudi
مکتبخونه
آموزش MLOps (عملیات های یادگیری ماشینی)
با گذراندن این دوره، شما یک نقطه شروع محکم برای درک MLOps و ایجاد و نگهداری سیستمهای ML به صورت کارآمد و قابل اطمینان به دست خواهید آورد.
🤩2❤1👌1
This media is not supported in your browser
VIEW IN TELEGRAM
مدار چشمک زن
دیود ها قطعات کاربردی و جالبی هستن، اگر به منبع تغذیه DC وصل بشه بر اساس وصل شدنش به سر مثبت و منفی میتونه نقش کلید باز یا بسته رو ایفا کنه
ولی همین قطعه اگر به منبع تغذیه AC وصل بشه شروع به قطع و وصل کردن جریان از مدار می کنه
تو ویدئو میبینید که led داره خاموش و روشن میشه یا به اصطلاح چشمک میزنه 👁️
ی قطعه باید داخل این مدار باشه که نیست، حدس بزنید اون قطعه چیه 😁🤝
دیود ها قطعات کاربردی و جالبی هستن، اگر به منبع تغذیه DC وصل بشه بر اساس وصل شدنش به سر مثبت و منفی میتونه نقش کلید باز یا بسته رو ایفا کنه
ولی همین قطعه اگر به منبع تغذیه AC وصل بشه شروع به قطع و وصل کردن جریان از مدار می کنه
تو ویدئو میبینید که led داره خاموش و روشن میشه یا به اصطلاح چشمک میزنه 👁️
ی قطعه باید داخل این مدار باشه که نیست، حدس بزنید اون قطعه چیه 😁🤝
❤4👌2🦄2✍1