Syntax | سینتکس – Telegram
🖥 کد ساخت دوربین امنیتی OpenCV Python :

🔹این کد یک برنامه است که دوربین را فعال می‌کند و تشخیص چهره و بدن انسان را در ویدیویی که توسط دوربین ضبط می‌شود، انجام می‌دهد.
اگر تشخیص داده شود که چهره یا بدنی در ویدیو وجود دارد، برنامه شروع به ضبط ویدیو می‌کند. پس از تشخیص از بین رفتن چهره یا بدن، برنامه تا 5 ثانیه دیگر ادامه می‌دهد و سپس ضبط را متوقف می‌کند.

🔹 ویدیوهای ضبط شده با فرمت mp4 و با نام‌های مختلف برای هر زمان ضبط شده‌اند.

🔺به طور خلاصه، این برنامه قابلیت تشخیص چهره و بدن انسان را در ویدیو فراهم می‌کند و در صورت تشخیص، ویدیویی را ضبط می‌کند.

#code
#python

@Syntax_fa
Syntax | سینتکس
🖥 کد ساخت دوربین امنیتی OpenCV Python : 🔹این کد یک برنامه است که دوربین را فعال می‌کند و تشخیص چهره و بدن انسان را در ویدیویی که توسط دوربین ضبط می‌شود، انجام می‌دهد. اگر تشخیص داده شود که چهره یا بدنی در ویدیو وجود دارد، برنامه شروع به ضبط ویدیو می‌کند.…
import cv2
import time
import datetime

cap = cv2.VideoCapture(0)

face_cascade = cv2.CascadeClassifier(
    cv2.data.haarcascades + "haarcascade_frontalface_default.xml")
body_cascade = cv2.CascadeClassifier(
    cv2.data.haarcascades + "haarcascade_fullbody.xml")

detection = False
detection_stopped_time = None
timer_started = False
SECONDS_TO_RECORD_AFTER_DETECTION = 5

frame_size = (int(cap.get(3)), int(cap.get(4)))
fourcc = cv2.VideoWriter_fourcc(*"mp4v")

while True:
    _, frame = cap.read()

    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)
    bodies = face_cascade.detectMultiScale(gray, 1.3, 5)

    if len(faces) + len(bodies) > 0:
        if detection:
            timer_started = False
        else:
            detection = True
            current_time = datetime.datetime.now().strftime("%d-%m-%Y-%H-%M-%S")
            out = cv2.VideoWriter(
                f"{current_time}.mp4", fourcc, 20, frame_size)
            print("Started Recording!")
    elif detection:
        if timer_started:
            if time.time() - detection_stopped_time >= SECONDS_TO_RECORD_AFTER_DETECTION:
                detection = False
                timer_started = False
                out.release()
                print('Stop Recording!')
        else:
            timer_started = True
            detection_stopped_time = time.time()

    if detection:
        out.write(frame)

    # for (x, y, width, height) in faces:
    #    cv2.rectangle(frame, (x, y), (x + width, y + height), (255, 0, 0), 3)

    cv2.imshow("Camera", frame)

    if cv2.waitKey(1) == ord('q'):
        out.release()
        cap.release()
        break

cv2.destroyAllWindows()

#@Syntax_fa
😱92👍2
📌معرفی کتابخانه opencv در پایتون :

📍کتابخانه cv2 یا OpenCV (Open Source Computer Vision) یک کتابخانه متن‌باز است که برای برنامه نویسی بصری در زمینه بینایی ماشین و پردازش تصویر استفاده می‌شود.

📍OpenCV
ابزارها، توابع و الگوریتم‌های مختلفی را برای تشخیص الگوها، تشخیص چهره، استخراج ویژگی‌ها، پردازش تصویر و ویدیو، و بسیاری از وظایف مرتبط با بینایی ماشین فراهم می‌کند.

📍با استفاده از کتابخانه cv2 می‌توانید عملیات مختلفی روی تصاویر و ویدیوها انجام دهید، از جمله خواندن و نوشتن تصاویر و ویدیوها، تبدیل فضای رنگی، تشخیص ویژگی‌ها و الگوها، تعیین نقاط کلیدی، تطبیق الگو، تعیین وضعیت و جهت، تغییر اندازه و پیوستگی تصاویر، و بسیاری دیگر از عملیات پردازش تصویر.

📍کتابخانه cv2 به زبان پایتون پیاده‌سازی شده است و با استفاده از آن می‌توانید در پروژه‌های پایتون خود از قابلیت‌های پردازش تصویر استفاده کنید.


برای نصب کتابخونه opencv از دستور زیر استفاده کنید :
pip install opencv-python


#معرفی_کتابخانه
#python

@Syntax_fa
👍5
1. Two Sum
مسئله ی اول:

یک آرایه داریم و یک target
کاری که باید بکنید این است درون آرایه، اندیس دو عدد را پیدا کنید که جمع(داده) آنها مساوی با target شود و این جفت عدد(اندیس) را در output نشان دهید.
اگر جفت عدد پیدا نشد در خروجی [0, 0] را نمایش می‌دهیم.

یعنی داده‌ی اندیس x به علاوه داده‌ی اندیس y برابر شد با target، خروجی: [x, y]

ورودی: nums = [2,7,11,15], target = 9

خروجی: [0,1]

توضیحات: زیرا nums[0] + nums[1] == 9، و ما [0, 1] نمایش می‌دهیم.

(آرایه را در پایتون همان لیست در نظر بگیرید.)
(متغیر target یک عدد است که از ورودی دریافت می شود.)

بهینه ترین کد فردا قرار میگیره(همراه با توضیح جواب رو توی کامنت ارسال کنید تا بهترین جواب با اسم خودتون قرار بگیره)


#Problems

@Syntax_fa
👍11👎1
Syntax | سینتکس
1. Two Sum مسئله ی اول: یک آرایه داریم و یک target کاری که باید بکنید این است درون آرایه، اندیس دو عدد را پیدا کنید که جمع(داده) آنها مساوی با target شود و این جفت عدد(اندیس) را در output نشان دهید. اگر جفت عدد پیدا نشد در خروجی [0, 0] را نمایش می‌دهیم. …
یکی از روش های خوب و پر سرعت:

میایم یک مپ(دیکشنری) تعریف میکنیم.
درون آرایه پیمایش میکنیم.
اولین قدم چک میکنیم عددمون فاصلش با تارگت چقدره‌ (یکی از اشتباهاتی که بعضی از دوستان کردن این بود که چک کردن اگه عدد از target بزرگ تر بود کلا بیخیالش شه بره بعدی اما ممکنه عدد منفیم تو لیست باشه. پس هر کی اینکارو کرده تست رو رد نمیکنه)

بعد از اینکه بدست آوردیم که عددمون چقدر با target فاصله داره. توی دیکشنری دنبال اون عددی میگردیم که عنصر ما با اون جمع بشه مساوی با تارگت میشه.
توی دیکشنری اعداد رو به این صورت ذخیره میکنیم
{value: index}
سرچ درون لیست با o(1) انجام میشه.
اگه توی دیکشنری نبود عنصر رو با ایندکسش توی دیکشنری اضافه میکنیم و به پیمایش ادامه میدیم

تو بهترین حالت کمتر از o(n) هستش و تو بدترین حالت o(n) میشه.

مثال توی پایتون:
class Solution(object):
def twoSum(self, nums, target):
checked = {}
for index, num in enumerate(nums, start=0):
index2 = checked.get(target - num)
if index2 is not None:
return [index2, index]
checked[num] = index
return [0, 0]


مثال توی گو:
 Go
func twoSumWithMakeMapAndExtraAssign(nums []int, target int) []int {
checked := make(map[int]int)
for index, num := range nums {
complete := target - num
if _, ok := checked[complete]; ok {
return []int{checked[complete], index}
}
checked[num] = index
}
return []int{}
}


نکته:
از نظر مصرف memory بهینه نیست. روش بهینه تر رو توی کامنت ها بگید.

#Problems

@Syntax_fa
🔥9👎21👍1
هشت تا از پروژه اپن سورس ترند گیت هاب

1. esProc SPL
این یک زبان برنامه نویسی جذاب و جدید برای محاسبات داده است که می تواند به عنوان یک database با کارایی بالا عمل کند.

با استفاده از esProc SPL، می‌توانید آن را به‌عنوان یک پایگاه داده تحلیلی یا میان‌افزار اجرا کنید و هزاران داده ساختاریافته یا نیمه‌ساختار یافته را برای تجزیه و تحلیل مجموعه‌های داده عظیم محاسبه کنید.


2. screenshot-to-code
28 هزار تا ستاره گرفته و به سرعت رو به رشده!!
یک اسکرین شات بسازید و آن را به کد (HTML/Tailwind CSS، React یا Vue یا Bootstrap) تبدیل کنید. با استفاده از GPT-4 Vision و DALL-E 3، یک پروژه واقعا شگفت انگیز!

3. plane
19 هزار ستاره.
جایگزین منبع باز برای ابزارهای مدیریت پروژه مانند Jira یا Linear. مسائل، اسپرینت ها و نقشه راه محصول.

4. pocketbase
27 هزار ستاره
بک اند پروژه با Go. قابلیت اشتراک، فایل ها، مدیریت کاربر، رابط کاربری Admin، و REST API ساده.

5. daisyui
27 هزار ستاره
کتابخانه component منبع باز برای Tailwind CSS. دارای بیش از 55 تا component بصورت built-in برای استفاده.

6. superduperdb
1 هزار ستاره
چارچوب منبع باز برای ادغام هوش مصنوعی در پایگاه داده شما برای آموزش مدل مقیاس پذیر و جستجوی برداری.

7. lencx/ChatGPT
44 هزار ستاره
برنامه اپن سورس چت جی بی تی برای دسکتاپ(ویندوز، مک و لینوکس)

8. javanoscript-algorithms
178 هزار ستاره
منبعی برای یادگیری الگوریتم و ساختمان داده در جاوااسکریپت.

#web_sites

@Syntax_fa
👍7😁1
💢 ویژگی‌ها و قابلیت‌های PyCharm

1. پیش‌بینی هوشمند کد (Intelligent Code Assistance): پای‌چارم از تکنولوژی‌های پیشرفته هوش مصنوعی برای پیش‌بینی هوشمند کد، دیباگ و اصلاح خطاها استفاده می‌کند. این ویژگی باعث افزایش سرعت توسعه و کاهش خطاها می‌شود.

2. مدیریت پروژه (Project Management): پای‌چارم به شما امکان می‌دهد تا به راحتی پروژه‌های پایتونی خود را مدیریت کرده و از ویژگی‌های مانند مدیریت و ایجاد محیط‌های مجازی (Virtual Environments) بهره ببرید.

3. پشتیبانی از فریم‌ورک‌ها و کتابخانه‌ها (Framework and Library Support): پای‌چارم دارای پشتیبانی کامل از اکثر فریم‌ورک‌ها و کتابخانه‌های پایتون است که به شما کمک می‌کند تا به بهترین شکل از این ابزارها استفاده کنید.

4. پشتیبانی از دیباگ (Debugging Support): امکان دیباگ کردن کد به شیوه‌های مختلف مانند اجرای مرحله به مرحله و نمایش متغیرها به شما کمک می‌کند تا خطاهای کد خود را به راحتی شناسایی کنید.

5. سفارشی‌سازی بالا (Highly Customizable): پای‌چارم به شما امکان می‌دهد تا به راحتی تم‌ها، افزونه‌ها و تنظیمات را سفارشی کنید تا بهترین تجربه توسعه را برای خودتان ایجاد کنید.

▪️ورژن های PyCharm

پای‌چارم دارای نسخه‌های مختلفی است که برای نیازهای گوناگون توسعه‌دهندگان ارائه شده است. این شامل نسخه Community، Professional و Enterprise می‌شود.


#python
#pycharm

@Syntax_fa
4
2. Longest Substring Without Repeating Characters

مسئله دوم
سطح: متوسط

توضیح:
رشته s را دریافت کنید و تعداد کاراکتر های بدون تکرارش را در خروجی برگردانید.
 
مثال:
Example 1:
Input: s = "abcabcbb" 
Output: 3

Explanation: The answer is "abc", with the length of 3
Example 2:
Input: s = "bbbbb"
Output: 1

Explanation: The answer is "b", with the length of 1.
Example 3:
Input: s = "pwwkew"
Output: 4


نکته:
رشته s می تواند شامل حروف انگلیسی، اعداد، سمبل ها و فاصله(space) باشد.

ورودی اعداد سمبل ها و حروف انگلیسی هستش.
ولی خروجی تعداد حروف بی تکرار انگلیسی

برای اینکه تست کنید جوابتون درسته حتما به این وب سایت سر بزنید و کدتون‌ رو تست کنید:
https://leetcode.com/problems/longest-substring-without-repeating-characters/denoscription/

جایزه:
به بهترین جواب کانفیگ ده گیگابایت شخصی داده میشود.

#Problems

@Syntax_fa
🔥7👍2👎1
معرفی وب سایت dbdesigner

یکی از بهترین وب سایت ها برای طراحی دیاگرام دیتابیستون هستش.
حتی میتونید بعد از طراحی خروجی postgres و mysql و چند تا دیتابیس معروف دیگه رو هم بگیرید تا با یه دستور ساده توی دیتابیس, هر چیزی که طراحی کردید ساخته شه.

پیشنهاد میکنم حتما حتما یکی از اولین اقدام های استارت پروژتون طراحی دیاگرام دیتابیستون باشه.

https://app.dbdesigner.net/

#database

@Syntax_fa
👍9
GitHubUnwrapped

تو این وب سایت یوزرنیم گیت هابتون رو وارد کنید تا بهتون همه ی فعالیت های امسالتونو به شکل خیلی جذاب نشون بده.

https://www.githubunwrapped.com/

#github

@Syntax_fa
👍92
بهترین پاسخ:
مهدی با این تیکه کد.

کانفیگ ده گیگ رو ایشالله باهاش بره یوتیوب آموزش ببینه 👌😂

تو مسئله های بعدی با کیفیت تر پیش میریم 🔥
👍9👎4😁1😱1
Syntax | سینتکس
بهترین پاسخ: مهدی با این تیکه کد. کانفیگ ده گیگ رو ایشالله باهاش بره یوتیوب آموزش ببینه 👌😂 تو مسئله های بعدی با کیفیت تر پیش میریم 🔥
نکاتی در خصوص حل مسئله:

در مصاحبه‌ها برای شغل‌های مرتبط با برنامه‌نویسی عموماً توصیه می‌شود در حل مسائل و الگوریتم‌ها از ویژگی‌های خاص زبان استفاده نشود و مسائل به طور عام بدون اتکا به یک زبان ویژه حل شوند. دلایل این توصیه عبارتند از:

- در مصاحبه بررسی می‌شود که شخص چگونه می‌تواند مسئله را به طور عام حل کند، نه آنکه از یک زبان مشخص استفاده کند.

- در شرکت‌های مختلف زبان‌های برنامه‌نویسی متفاوتی مورد استفاده قرار می‌گیرند. پس مهم است که کاربردی بودن الگوریتم‌ها نشان داده شود.

- بدون اتکا به زبان، باید از مفاهیم پایه‌ای مانند ریاضیات، منطق و طراحی الگوریتم استفاده شود.

بنابراین در مصاحبه‌ها توصیه می‌شود که بدون استفاده از ویژگی‌های خاص زبان، مسائل را حل کرد تا قدرت تحلیل و حل مسئله فرد بهتر به نمایش گذاشته شود.

#Problems

@Syntax_fa
👍6
🔴 سلام دوستان، همزمان با پیمایش و مزه مزه کردن تمرین‌های leetcode، قراره یه سری تمرین‌های دیگه قرار بدیم با تگ: #break_limit.

⭕️ در این نوع تمرین‌ها، خروجی خواسته شده با مواد قابل دسترس از شما انتظار خواهد رفت.

🔅 یعنی یک الگوریتم پایتون رو بدون استفاده از ابزارهایی به جز ابزارهایی که براتون داخل تمرین تعریف شده پیاده‌سازی کنید.

ببینم چه می‌کنید. 😎

@Syntax_fa
👍9👎1
❇️ تمرین اول. پیاده‌سازی اندیس(index) در پایتون.

ورودی1: رشته‌ای شامل انواع مختلفی از کاراکترها. (str)
ورودی2: شامل عددی نا معلوم. (int>=0)

خروجی: ورودی1[ورودی2]. (str)

توضیحات: ورودی دوم اندیسی از ورودی اول خواهد بود و شما باید داده آن اندیس را استخراج کرده و در خروجی نمایش دهید.

#نکته در صورت وجود نداشتن اندیس، پیغام string index out of range، چاپ شود.

قابل استفاده: حلقه‌ها و شرط‌ها.

#توجه استفاده از range ممنوع می‌باشد.
#توجه استفاده از هرگونه متد، کتابخانه و یا توابع داخلی و خارجی غیرمجاز بوده و پیگرد قانونی خواهد داشت. 😁

#مثال1:

ورودی1: salam
ورودی2: 4

خروجی: m



#مثال2:

ورودی1: salam
ورودی2: 5

خروجی: string index out of range

#break_limit
@Syntax_fa
👍7🤣2🔥1
❇️ تمرین دوم. پیاده‌سازی extand در پایتون.

ورودی1: تعداد عناصر لیست1. (int>0)
ورودیx-1: عناصر لیست1 به ترتیب وارد خواهد شد، در صورتی که 7 آیتم وجود داشته باشد نیاز به 7 بار ورودی گرفتن است. (list[str])

ورودی2: تعداد عناصر لیست2. (int>0)
ورودیx-2: عناصر لیست2. (list[str])

خروجی: لیست1.extand(لیست2)

توضیحات: عناصر لیست دوم به ترتیب، به لیست اول اضافه شوند.

#نکته تمامی عناصر string خواهند بود.

#توجه ابتدا دو لیست خالی در برنامه تعریف کنید و سپس داده ها را به به صورت زیر وارد کنید:
myList = []
myList += ["new data"]


#توجه استفاده از ساختار list_1 += list_2 غیرمجاز است.
#راهنما استفاده از یک لیست واسطه.

قابل استفاده: حلقه‌ها ( استفاده از range مجاز است. ).

#توجه استفاده از هرگونه متد، کتابخانه و یا توابع داخلی و خارجی غیرمجاز بوده و پیگرد قانونی خواهد داشت. 😁

#مثال1:

ورودی1: 3
ورودی1-1: A
ورودی1-2: B
ورودی1-3: C

ورودی2: 3
ورودی2-1: 1
ورودی2-2: 2
ورودی2-3: 3

خروجی: ["A", "B", "C", "1", "2", "3"]

#break_limit
@Syntax_fa
👍8🔥2👎1
🤔 چرا بسته‌های نامحدود از ساعت ۱ شب شروع می‌شوند؟


@Syntax_fa
👍15👎2
❇️ تمرین سوم. شبیه‌سازی داندر متد as_integer_ratio در پایتون.
#version>=Python3.8

ورودی: یک عدد اعشاری مثبت. (float>0)

خروجی: یک تاپل که شامل دو عدد صحیح می‌باشد و اگر عدد اول را بر عدد دوم تقسیم کنیم حاصل جواب برابر با ورودی خواهد بود.

توضیحات: برای درک کامل مبحث توصیه می‌شود کد زیر را اجرا کنید:

print(12.5.as_integer_ratio())  # (25, 2)


#نکته نحوه کارکرد as_integer_ratio در حالت عادی کمی متفاوت است
به عنوان مثال برای عدد 125.1 خروجی (4401564948312883,35184372088832) خواهد بود و پذیرفته نیست. اما در صورتی که خروجی برنامه شما برابر با (1251,10) بود، پاسخ صحیح است.

#توجه این داندر متد کاربرد و الگوریتم دیگری دارد، قصد ما در این تمرین شبیه‌سازی است نه پیاده‌سازی.
پس صرفا نسبت به خروجی های خواسته شده پیش بروید.

⚠️ دقت کنید که هدف برنامه پیدا کردن این دو عدد است و انتظار میرود کسر کوچک ترین حالت ممکن باشد.
یعنی در صورتی که عدد 12.5 وارد شود، جواب صحیح (25,2) خواهد بود و در صورت چاپ (125,10) پذیرفته نیست.

قابل استفاده: حلقه‌ها و شرط‌ها.

#توجه استفاده از هرگونه متد، کتابخانه و یا توابع داخلی و خارجی غیرمجاز بوده و پیگرد قانونی خواهد داشت. 😁

#مثال:
ورودی: 3.14

خروجی: (50, 157)


#break_limit
@Syntax_fa
👍10👎1
⭐️ و باز هم یه تگ جدید 😁♥️

درکنار تمرین‌ها و سختی‌هایی که تا به الان برای پیشرفت‌تون باهاش مواجه شدید 😅

🥳 قراره یه تگ جدید اضافه کنیم با عنوان #python_eight ♥️

توی این بازه و این تگ جدید قراره تکه کد های کاربردی پایتون رو به همراه سورس و توضیحات مختصر داخل چنل قرار بدیم.

موافقم(👍).
مخالفم(👎).

لطفا نظرتون رو به صورت ری اکشن قرار بدید داخل همین پیام.

👇 @Syntax_fa
👍61👎1