ในส่วนนี้จะเป็นกระบวนการหาจุด peak โดยการใช้ Profiling Method ที่มีเงื่อนไขที่ว่าจะมีจุด Peak จำนวน 1 จุดกระบวนการนี้จะใช้การหาค่าเฉลี่ยของ row ทุกแถว และ ทุก column
<aside> <img src="/icons/server_blue.svg" alt="/icons/server_blue.svg" width="40px" /> SunSensorAlgorithm → main.py
https://github.com/TheGotGithub/SunSensor.git
</aside>
Sun Spot Detected
ในการที่จะตรวจจับ Sun Spot นั้นเราได้ใช้ขั้นตอนดังต่อไปนี้
การอ่านข้อมูลจาก CMOS โดยจะแปลงเป็น gray scale เพื่อลดความซับซ้อนในการประมวลผล
ในขณะเดียวกันก็จะทำการหาค่าเฉลี่ยของแต่ละ row ,col และเก็บไว้เพื่อใช้ในการหาจุด peak ในภายหลัง
# loade image
row_data = []
colum_data = []
for i in range(len(rawData)) :
mData = 0
for j in range(len(rawData[i])):
mData += rawData[i][j]
mData = mData/len(rawData[0])
row_data.append(mData)
for i in range(len(rawData[0])) :
mData = 0
for j in range(len(rawData)) :
mData += rawData[j][i]
mData = mData/len(rawData)
colum_data.append(mData)
หลังจากนั้นนำค่าเฉลี่ยที่ได้จาก row ,col มาหาค่าที่สูงสุดของ list (array) ก็จะได้จุด peak ออกมา
peakPoint = [row_data.index(max(row_data)),colum_data.index(max(colum_data))]
print('Peak Point = ',peakPoint)
และสุดท้ายนำไปกรองค่าพื้นหลังที่ไม่จำเป็นออก และกำหนดขนาดใหม่เพื่อแสดงผล(ไม่จำเป็นต่อการนำไปวิเคราะห์ต่อ)
#Select Sun Spot
fillData = rawData[peakPoint[0]-15:peakPoint[0]+15]
fillData2 = []
for i in range(len(fillData)):
fillData2.append(fillData[i][peakPoint[1]-15:peakPoint[1]+15].copy())
for j in range(len(fillData2[-1])):
if fillData2[-1][j] <=125 : fillData2[-1][j] = 0