8.37. PikaCV 模块 API 文档
8.37.1. API
8.37.1.1. class ImageFormat:
The ImageFormat class is used to
store the image format enum of an image.
def __init__(self):...
8.37.1.2. class Image:
Create a empty image. The image can be
filled with data by read a file e.g.: read()
or load bytes e.g:. loadRGB888, loadRGB565, loadGray or loadJpeg
def __init__(self):...
def read(self,path:str):...
Read the image from the specified path,
Need implement the __platform_fopen(), __platform_fread()
and __platform_fclose()
def write(self,path:str):...
Write the image to the specified path,
Need implement the __platform_fopen(), __platform_fwrite()
and __platform_fclose()
def loadJpeg(self,bytes:any):...
Load the image from bytes
def loadRGB888(self,width:int,height:int,bytes:bytes):...
Load the image from bytes
def loadRGB565(self,width:int,hight:int,bytes:bytes):...
Load the image from bytes
def loadGray(self,width:int,hight:int,bytes:bytes):...
Load the image from bytes
def width(self)->int:...
Get the width of the image
def hight(self)->int:...
Get the hight of the image
def format(self)->int:...
Get the format of the image.
The format is one of the ImageFormat enum,
like ImageFormat.RGB888
def data(self)->bytes:...
Get the data of the image
def getPixel(self,x:int,y:int,channel:int)->int:...
Get the pixel value of the specified channel.
For example, if the format of image is RGB888,
the channel 0, 1, 2, means R, G, B,
and for the format of GRAY8, the channel is 0
def setPixel(self,x:int,y:int,channel:int,value:int):...
Set the pixel value of the specified channel.
For example, if the format of image is RGB888,
the channel 0, 1, 2, means R, G, B,
and for the format of GRAY8, the channel is 0
def size(self)->int:...
Get the size of the image by bytes
def add(self,image:Image):...
Add two images
def minus(self,image:Image):...
Minus two images
def split(self)->list:...
Split one 3-channels image to three 1-channel
def merge(self,R:Image,G:Image,B:Image):...
Merge three 1-channel image to 3-channels
8.37.1.3. class Converter:
The Converter class is used to
convert an image from one format to another.
def toRGB888(image:Image):...
Convert the image to RGB888
def toRGB565(image:Image):...
Convert the image to RGB565
def toGray(image:Image):...
Convert the image to Gray
def toBMP(image:Image):...
Convert the image to BMP
def toBGR888(image:Image):...
Convert the image to BGR888
def converter(image:Image,format:int):...
2:RGB888
3:BGR888
4:RGB565
5:GRAY
6:BMP
8.37.1.4. class Transforms:
The transforms class is used to
supply the rotate, flip, and crop operation for an image.
def rotateDown(image:Image):...
Rotate the image
def threshold(image:Image,thre:int,maxval:int,thresholdType:int):...
0:THRESH_BINARY
1:THRESH_BINARY_INV
2:THRESH_TRUNC
3:THRESH_TOZERO
4:THRESH_TOZERO_INV
5:OTSU
def setROI(image:Image,x:int,y:int,w:int,h:int):...
xywh
def getOTSUthre(image:Image)->int:...
return otsu threshold
def setOTSU(image:Image):...
otsu
def resize(image:Image,x:int,y:int,resizeType:int):...
resize image
0:NEAREST
TODO:
1:BILINEAR
def adaptiveThreshold(image:Image,maxval:int,subsize:int,c:int,method:int):...
AdaptiveThreshold
method
0:meanFilter
1:medianFilter
#TODO 2:gaussianFilter
8.37.1.5. class Filter:
The Filter class is used to
supply some Image Filtering Algorithms .
def meanFilter(image:Image,ksizex:int,ksizey:int):...
mean filter,ksize is odd
def medianFilter(image:Image):...
median filter,kernel size is 3*3
8.37.2. Examples
8.37.2.1. PikaCV_test11.py
import PikaCV as cv
import binascii
img = cv.Image()
img.read("test/assets/test2.jpg")
cv.Converter.toGray(img)
data = img.data()
print(binascii.b2a_hex(img.data()).decode())
cv.Converter.toBMP(img)
img.write("test/out/test.bmp")
8.37.2.2. PikaCV_test10.py
import PikaCV as cv
img = cv.Image()
img.read("test/assets/test.jpg")
cv.Converter.toGray(img)
cv.Transforms.adaptiveThreshold(img,255,3,0,0)
cv.Converter.toBMP(img)
img.write("test/out/test10.bmp")
8.37.2.3. PikaCV_test1.py
import PikaCV as cv
import binascii
img = cv.Image()
img.read("test/assets/test.jpg")
cv.Converter.toRGB565(img)
print(str(binascii.b2a_hex(img.data())))
cv.Converter.toBMP(img)
img.write("test/out/test.bmp")
8.37.2.4. PikaCV_test2.py
import PikaCV as cv
import binascii
img = cv.Image()
img.read("test/assets/test.jpg")
cv.Converter.toRGB888(img)
Channel = img.split()
R = Channel[0]
G = Channel[1]
B = Channel[2]
cv.Converter.toBMP(R)
cv.Converter.toBMP(G)
cv.Converter.toBMP(B)
R.write("test/out/R.bmp")
G.write("test/out/G.bmp")
B.write("test/out/B.bmp")
8.37.2.5. PikaCV_test4.py
import PikaCV as cv
img = cv.Image()
img.read("test/assets/test.jpg")
cv.Converter.toGray(img)
cv.Transforms.threshold(img,120,255,0)
cv.Converter.toBMP(img)
img.write("test/out/test.bmp")
8.37.2.6. PikaCV_test3.py
import PikaCV as cv
import binascii
img = cv.Image()
img.read("test/assets/test.jpg")
cv.Converter.toRGB888(img)
Channel = img.split()
R = Channel[0]
G = Channel[1]
B = Channel[2]
img1 = cv.Image()
cv.Converter.toRGB888(img1)
img1.merge(R,G,B)
cv.Converter.toBMP(img1)
img1.write("test/out/merge.bmp")
print("Merge done")
8.37.2.7. PikaCV_test5.py
import PikaCV as cv
img = cv.Image()
img.read("test/assets/test.jpg")
cv.Converter.toRGB888(img)
cv.Transforms.setROI(img,5,5,5,5)
cv.Converter.toBMP(img)
img.write("test/out/test1.bmp")
8.37.2.8. PikaCV_test8.py
import PikaCV as cv
img = cv.Image()
img.read("test/assets/test.jpg")
cv.Converter.toRGB888(img)
cv.Filter.meanFilter(img,3,3)
cv.Converter.toBMP(img)
img.write("test/out/test8.bmp")
8.37.2.9. PikaCV_test6.py
import PikaCV as cv
img = cv.Image()
img.read("test/assets/test.jpg")
cv.Converter.toRGB888(img)
thre = cv.Transforms.getOTSUthre(img)
print(thre)
cv.Transforms.setOTSU(img)
cv.Converter.toBMP(img)
img.write("test/out/test2.bmp")
8.37.2.10. PikaCV_test9.py
import PikaCV as cv
img = cv.Image()
img.read("test/assets/test.jpg")
cv.Converter.toRGB888(img)
cv.Filter.medianFilter(img)
cv.Converter.toBMP(img)
img.write("test/out/test9.bmp")
8.37.2.11. PikaCV_test7.py
import PikaCV as cv
img = cv.Image()
img.read("test/assets/test.jpg")
cv.Converter.toRGB888(img)
thre = cv.Transforms.resize(img,25,25,0)
cv.Converter.toBMP(img)
img.write("test/out/test3.bmp")