『壹』 Opencv用python實現灰度圖
請題主把兩張圖上傳上來。具體方法:是上傳到網路網盤然後鏈接貼過來
『貳』 如何從python中opencv的陣列讀取原始PNG
PNG圖像從我的iPhone到我的MacBook通過TCP。 MacBook的代碼是從怎樣的形象與OpenCV的轉換? PNG格式被選中它們是有效的,但其他格式可以 我寫了一個測試程序,從文件中讀取的rawImage,但不知道如何將它轉化成:# Read rawImage from a file, but in reality will have it from TCPServer
f = open('frame.png', "rb")
rawImage = f.read()
f.close()
# Not sure how to convert rawImage
npImage = np.array(rawImage)
matImage = cv2.imdecode(rawImage, 1)
#show it
cv.NamedWindow('display')
cv.MoveWindow('display', 10, 10)
cv.ShowImage('display', matImage)
cv. WaitKey(0)
1. 另一種方式, 也是在閱讀一個實際的文件的情況下,這將適用於一個unicode路徑(在Windows上進行測試)with open(image_full_path, 'rb') as img_stream:
file_bytes = numpy.asarray(bytearray(img_stream.read()), dtype=numpy.uint8)
img_data_ndarray = cv2.imdecode(file_bytes, cv2.CV_LOAD_IMAGE_UNCHANGED)
img_data_cvmat = cv.fromarray(img_data_ndarray) # convert to old cvmat if needed
2. (你的問題似乎被標記的Objective-C,但你問的Python,所以是你的榜樣,所以我'的。) 我的第一篇文章對堆棧溢出! 簡歷。似乎是你在找什麼。 的LoadImage(iscolor=CV_LOAD_IMAGE_COLOR)→無Loads an image from a file as an IplImage.
Parameters:
filename (str) – Name of file to be loaded.
iscolor (int) –
Specific color type of the loaded image:
CV_LOAD_IMAGE_COLOR the loaded image is forced to be a 3-channel color image
CV_LOAD_IMAGE_GRAYSCALE the loaded image is forced to be grayscale
CV_LOAD_IMAGE_UNCHANGED the loaded image will be loaded as is.
該函數cvLoadImage載入圖像從指定的文件和 返回的指針載入的圖像。目前,下列文件 格式支持:Windows bitmaps - BMP, DIB
JPEG files - JPEG, JPG, JPE
Portable Network Graphics - PNG
Portable image format - PBM, PGM, PPM
Sun rasters - SR, RAS
TIFF files - TIFF, TIF
注意,在當前的alpha通道,如果有的話,是 從輸出圖像除去,例如4通道的RGBA圖像會 載入為RGB。
3. 我想通了:# Read rawImage from a file, but in reality will have it from TCPServer
f = open('frame.png', "rb")
rawImage = f.read()
f.close()
# Convert rawImage to Mat
pilImage = Image.open(StringIO(rawImage));
npImage = np.array(pilImage)
matImage = cv.fromarray(npImage)
#show it
cv.NamedWindow('display')
cv.MoveWindow('display', 10, 10)
cv.ShowImage('display', matImage)
cv. WaitKey(0)
『叄』 ubuntu 下安裝了opencv 和 python,可是運行程序時,總出現下面的問題
看了你的錯誤,很明顯你連linux下運行python腳本都不熟悉,首先你的python test.py這個命令不能在python環境下執行。。要執行的話也可以,直接import test就可以,要確定test文件路徑
『肆』 運行Python出現錯誤: AttributeError: 'mole' object has no attribute 'LoadImage' 請各位大神支招!
典型AttributeError異常,找不到LoadImage屬性,請檢查你是否導入了此模塊或者模塊使用是否正確
『伍』 python大神求助,關於圖片合成問題
這需要opencv圖形的庫才會比較容易吧。
import cv2.cv as cv
if __name__=='__main__':
img1=cv.LoadImage('foreground.jpg')
img2=cv.LoadImage('background.jpg')
img3=cv.CreateImage((img1.width, img1.height), 8, 3)
for i in range(img1.height):
for j in range(img1.width):
if (img1[i,j][0]==0 and img1[i,j][1]>255 and img1[i,j][2]==0): #判斷像素點為綠色,即背景色,可根據實際做相應的變化
img3[i,j][0]=img2[i,j][0]
img3[i,j][1]=img2[i,j][1]
img3[i,j][2]=img2[i,j][2]
else:
img3[i,j][0]=img1[i,j][0]
img3[i,j][1]=img1[i,j][1]
img3[i,j][2]=img1[i,j][2]
cv.SaveImage("result.jpg",img3)
『陸』 如何從python中opencv的數組讀取原始PNG
1. 另一種方式,
也是在閱讀一個實際的文件的情況下,這將適用於一個unicode路徑(在Windows上進行測試)
with open(image_full_path, 'rb') as img_stream:
file_bytes = numpy.asarray(bytearray(img_stream.read()), dtype=numpy.uint8)
img_data_ndarray = cv2.imdecode(file_bytes, cv2.CV_LOAD_IMAGE_UNCHANGED)
img_data_cvmat = cv.fromarray(img_data_ndarray) # convert to old cvmat if needed
2.
(你的問題似乎被標記的Objective-C,但你問的Python,所以是你的榜樣,所以我'的。)
我的優先篇文章對堆棧溢出!
簡歷。似乎是你在找什麼。
的LoadImage(iscolor=CV_LOAD_IMAGE_COLOR)→無
Loads an image from a file as an IplImage.
Parameters:
filename (str) – Name of file to be loaded.
iscolor (int) –
Specific color type of the loaded image:
CV_LOAD_IMAGE_COLOR the loaded image is forced to be a 3-channel color image
CV_LOAD_IMAGE_GRAYSCALE the loaded image is forced to be grayscale
CV_LOAD_IMAGE_UNCHANGED the loaded image will be loaded as is.
該函數cvLoadImage載入圖像從指定的文件和
返回的指針載入的圖像。目前,下列文件
格式支持:
Windows bitmaps - BMP, DIB
JPEG files - JPEG, JPG, JPE
Portable Network Graphics - PNG
Portable image format - PBM, PGM, PPM
Sun rasters - SR, RAS
TIFF files - TIFF, TIF
注意 CodeGo.net,在當前的alpha通道,如果有的話,是
從輸出圖像除去,例如4通道的RGBA圖像會
載入為RGB。
3.
我想通了:
# Read rawImage from a file, but in reality will have it from TCPServer
f = open('frame.png', "rb")
rawImage = f.read()
f.close()
# Convert rawImage to Mat
pilImage = Image.open(StringIO(rawImage));
npImage = np.array(pilImage)
matImage = cv.fromarray(npImage)
#show it
cv.NamedWindow('display')
cv.MoveWindow('display', 10, 10)
cv.ShowImage('display', matImage)
cv. WaitKey(0)
『柒』 python如何把檢測出來的邊緣畫成矩形
__author__='Administrator'importcv
defSharp(image,flag1=0,flag2=0):
w=image.width
h=image.heightsize=(w,h)
iSharp=cv.CreateImage(size,8,1)foriinrange(h-1):forjinrange(w-1):ifflag2==0:
x=abs(image[i,j+1]-image[i,j])
y=abs(image[i+1,j]-image[i,j])else:
x=abs(image[i+1,j+1]-image[i,j])
y=abs(image[i+1,j]-image[i,j+1])ifflag1==0:
iSharp[i,j]=max(x,y)else:
iSharp[i,j]=x+yreturniSharpimage=cv.LoadImage('18.jpg',0)
iMaxSharp=Sharp(image)
iAddSharp=Sharp(image,1)
iRMaxSharp=Sharp(image,0,1)
iRAddSharp=Sharp(image,1,1)
cv.ShowImage('iMaxSharp',iMaxSharp)
cv.ShowImage('image',image)
cv.ShowImage('iAddSharp',iAddSharp)
cv.ShowImage('iRAddSharp',iRAddSharp)
cv.ShowImage('iRMaxSharp',iRMaxSharp)
cv.WaitKey(0)
『捌』 python圖像處理opencv cv.createimage怎麼用
在處理圖片的時候,經常會需要把一些信息直接以文字的形式輸出在圖片上,下面的代碼將實現這個效果:
import cv2.cv as cv
image=cv.LoadImage('img/lena.jpg', cv.CV_LOAD_IMAGE_COLOR) #Load the image
font = cv.InitFont(cv.CV_FONT_HERSHEY_SIMPLEX, 1, 1, 0, 3, 8) #Creates a font
『玖』 如何用python進行文本預處理
#!/usr/bin/python
#print"HelloWorld"
str_seperator="=================================================================================="
timePointName=["enterOpenNextImageat",#0
"enterOpenImageat",#1
"InOpenImagesendOn_ImageRefreshat",#2
"leaveOpenImageat",#3
"leaveOpenNextImageat",#4
"enterLoadImageat",#5
"decodebeganat",#6
"enterDrawClientat",#7
"leaveDrawClientat",#8
"decodeendat",#9
"inLoadImagesendOn_ImageRefreshat",#10
"leaveloadImageat",#11
"secondenterDrawClientat",#12
"secondleaveDrawClientat"#13
]
itemNumber=0;
avgTotal=0;#13-0
avgFirstDraw=0;#8-2
avgLoadImage=0;#11-5
avgSecondDraw=0;#13-10
fobj=open("F:log.txt","r")
imageTimeSta={}
dic={}
path=""
idx=0
forlineinfobj:
idx=idx+1
ifidx==1:
line=line[3:]
else:
pass
line=line.strip()
line=line.decode("utf-8").encode("gbk")
ifline==str_seperator:
ifpath=="":
pass
else:
imageTimeSta[path]=dic
dic={}
path=""
continue
tabIndex=line.find(' ')
iftabIndex==-1:
path=line
printpath
continue
tabLastIndex=line.rfind(' ')
name=line[0:tabIndex]
time=int(line[tabLastIndex+1:])
ifnameindic:
dic["second"+name]=time
else:
dic[name]=time
fobj.close()
itemNumber=len(imageTimeSta)
keys=imageTimeSta.keys();
for(k,dic)inimageTimeSta.iteritems():
avgTotal+=dic[timePointName[13]]-dic[timePointName[0]];
avgFirstDraw+=dic[timePointName[8]]-dic[timePointName[2]];
avgLoadImage+=dic[timePointName[11]]-dic[timePointName[5]];
avgSecondDraw+=dic[timePointName[13]]-dic[timePointName[10]];
print'avgTotal',avgTotal/float(itemNumber)
print'avgFirstDraw',avgFirstDraw/float(itemNumber)
print'avgLoadImage',avgLoadImage/float(itemNumber)
print'avgSecondDraw',avgSecondDraw/float(itemNumber)
#printimageTimeSta
『拾』 python如何將PIL.Image對象寫入到windows剪貼板中
from ctypes import *
import os
import win32con,win32clipboard
aString=windll.user32.LoadImageW(0,"new.bmp",win32con.IMAGE_BITMAP,0,0,win32con.LR_LOADFROMFILE)
print(aString)
if aString !=0: ## 由於圖片編碼問題 圖片載入失敗的話 aString 就等於0
win32clipboard.OpenClipboard()
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardData(win32con.CF_BITMAP, aString)
win32clipboard.CloseClipboard()
————————————————