Python: How to skip / break in for loop

21 01 2013

20130121

For loop in python working like this

for i in range(10):
   print i

output will be

0
1
2
3
4
5
6
7
8
9

if you want to exit loop when condition is true (when i = 5)

for i in range(10):
   if i == 5:
      break
   print i

output will be

0
1
2
3
4

if you want skip when condition is true (when i = 5) but you still want it continue loop

for i in range(10):
   if i == 5:
      continue
   print i

output will be

0
1
2
3
4
6
7
8
9
Advertisements




Python: install GDAL with Python 2.7 on Windows 7 64 bit

14 01 2013

20130114

It’s easy to install GDAL library for Python on Windows 7 64 bit

การติดตั้ง GDAL สำหรับ Python บนระบบปฎิบัติการ Windows 7  64 bit เดิมเคยคิดว่ายุ่งยากกลับไม่เป็นเช่นนั้น ติดตั้งได้ง่ายมากเลย

required: (dowload มาได้เลย)

  1. Python 2.7.3 for windows 64 bit [download link][download page]
  2. GDAL-1.9.2.windows 64bit for Python 2.7 [download link]

เมื่อโหลดมาครบแล้วก็เริ่มกันได้เลย

  • install Python 2.7 [if you already installed pass this ^_^]
  • install GDAL 1.9.2

เรียบร้อย ไม่ต้องตั้งค่าอื่นเห็นไหมง่ายมากเลยเทียบกับของเดิม

test: มาทดสอบกันว่าใช้งานได้หรือเปล่า

เปิด Python Shell หรือ Python Interpreter ขึ้นมา
พิมพ์ from osgeo import gdal ถ้าสามารถโหลดเข้ามาได้จะแสดงพร้อมสำหรับรับคำสั่งต่อไป
พิมพ์ dir(gdal) ถ้าสมบูรณ์ก็จะแสดงคำสั่งต่างๆ ออกมาดังภาพ
Image

พร้อมใช้งานแล้ว





Python: read text file into list

24 12 2012

20121224

text file contain data of 15 ground point. file name is grounddata.txt

 15
 1 18160.153 -57509.869 1284.700 0.2 0.2 0.1
 2 24207.094 -54489.362 1341.192 0.2 0.2 0.1
 3 27248.245 -51442.223 824.272 0.2 0.2 0.1
 4 21195.711 -51470.131 946.992 0.2 0.2 0.1
 5 24000.0 -54000.0 1000.0 1000.0 1000.0 1000.0
 6 24000.0 -54000.0 1000.0 1000.0 1000.0 1000.0
 7 24000.0 -54000.0 1000.0 1000.0 1000.0 1000.0
 8 24000.0 -54000.0 1000.0 1000.0 1000.0 1000.0
 9 24000.0 -54000.0 1000.0 1000.0 1000.0 1000.0
 10 24000.0 -54000.0 1000.0 1000.0 1000.0 1000.0
 11 24000.0 -54000.0 1000.0 1000.0 1000.0 1000.0
 12 24000.0 -54000.0 1000.0 1000.0 1000.0 1000.0
 13 24000.0 -54000.0 1000.0 1000.0 1000.0 1000.0
 14 24000.0 -54000.0 1000.0 1000.0 1000.0 1000.0
 15 24000.0 -54000.0 1000.0 1000.0 1000.0 1000.0

the first line is number of points.
second line to end is point number, X, Y, Z, SDX,SDY,SDZ

I need to read text file and convert data from text to number and add them to list in Python.
I use this code

def num(s):
  try:
     return int(s)
  except ValueError:
     return float(s)
if __name__ == '__main__':
   filemane = 'grounddataTom.txt'
   with open(filemane,'r') as f:
     i = 0
     groundPointList = []
     for line in f:
       if i == 0:
         groundPoint = int(line)
       else:
         lineTxt = line.split()
         lineNum = []
           for j in lineTxt:
             lineNum.append(num(j))
           groundPointList.append(lineNum)
       i +=1
  print groundPoint
  print groundPointList

it work very well





Python: get variable value from text

14 12 2012

20121214

มีตัวแปรที่เก็บไว้แบบเรียงหมายเลข ต้องการระบุเฉพาะหมายเลขแล้วเข้าไปเรียกตัวแปรได้ถูกตัว

code:

frame098Data = [1,a,2,b,3,]
frame101Data = [2,d,e,f,g,]
frame104Data = [3,q,2,p,1,]

input ="098"
dataname ="frame"+input+"Data"

print dataname

จะได้ >”frame098Data”
แต่หากเราใช้ฟังก์ชั่น eval()

print eval(dataname)

จะได้ >[1,a,2,b,3,]





Python: get last folder from path

7 12 2012

20121207

ต้องการใช้ชื่อโฟล์ดเดอร์สุดท้าย ไปใช้งานสามารถทำได้ดังนี้

code:

import os
mypath = ‘G:\Python\Sample\lastFolder’
print os.path.basename(os.path.normpath(mypath)

the result is “lastFolder”





Python: OpenCV: FeatureDetector / DescriptorExtractor

24 11 2012

20121124

cv2

ของจุดที่น่าสนใจด้วยวิธี cv2.FeatureDetector_create(detector)
และหา descriptor ด้วย cv2.DescriptorExtractor_create(detector)

code:

import cv2
image01 = r'D:\Phanu\research\PanoData\ladybug_Panoramic_5400x2700_00000097.jpg'
img = cv2.imread(image01)
detector = "SIFT"
sd = cv2.FeatureDetector_create(detector)
surf = cv2.DescriptorExtractor_create(detector)
keypoints = sd.detect(img)
l,d = surf.compute(img, keypoints)

เท่าที่ลอง  [“SIFT”,”SURF”,”ORB”] สามอย่างนี้ใช้ได้





Python: OpencV: resize image

23 11 2012

20121123

resize image with opencv [cv2]

“can’t show full image?” yes, because your image bigger than monitor resolution.
let scale it down.

this sample is show how to resize image down 4 times

code:

import cv2
 filename = "panorama_00098.jpg"
 oriimage = cv2.imread(filename)
 newx,newy = oriimage.shape[1]/4,oriimage.shape[0]/4 #new size (w,h)
 newimage = cv2.resize(oriimage,(newx,newy))
 cv2.imshow("original image",oriimage)
 cv2.imshow("resize image",newimage)
 cv2.waitKey(0)

Image

I added more example, try to see
resize image by width

new link
Resize your image fit your screen