1. python將圖像分割成兩半

importos
importre
importsys
importtime
importrandom
#addsystemheadershere...

#導入cv模塊
importcv2ascv
#讀取圖像,支持bmp、jpg、png、tiff等常用格式

height=0
length=0

key=0

picPath="E:\python3.4.0-amd\project\imageProcess\tamamo.jpg"
ifnotos.path.exists(picPath):
print("picturenotexists!exit!")
sys.exit()
srcImage=cv.imread(picPath)
ifsrcImageisNone:
print("readpicturefailed!exit!")
sys.exit()
size=srcImage.shape

height=size[0]
length=size[1]
print("srcImage:height(%u)length(%u)"%(height,length))
#顯示原圖
#cv.imshow("srcImage",srcImage)

#創建窗口並顯示圖像
mid=int(length/2)

leftImage=srcImage[0:height,0:mid]
cv.namedWindow("leftImage",cv.WINDOW_NORMAL)
cv.resizeWindow("leftImage",mid,height)
cv.imshow("leftImage",leftImage)

rightIamge=srcImage[0:height,mid:length]
cv.namedWindow("rightIamge",cv.WINDOW_NORMAL)
cv.resizeWindow("rightIamge",mid,height)
cv.imshow("rightIamge",rightIamge)

cv.waitKey(0)
#釋放窗口
cv.destroyAllWindows()

2. python代碼嵌入java,調用讀取文件

f1 = raw_input("input file name")
f2 = raw_input("input another name")
img1 = cv.imread(f1)
img2 = cv.imread(f2)

發完了才看到你是要在站點上來選擇文件,這個也好辦,如果是java來調用你內的文件,那麼java獲得用容戶表單里提交的文件名,作為參數傳給你的腳本就可以了。
import sys
f1 = sys.argv[1]
f2 = sys.argv[2]
img1 = cv.imread(f1)
img2 = cv.imread(f2)
調用的時候,按照腳本名 +空格 +參數1 + 參數2的方式來運行就可以了

3. python怎麼安裝opencv

一、openCV介紹
Open Source Computer Vision Library.OpenCV於1999年由Intel建立,如今由Willow Garage提供支持。OpenCV是一個基於BSD許可(開源)發行的跨平台計算機視覺庫,可以運行在Linux、Windows、MacOS操作系統上。它輕量級而且高效——由一系列 C 函數和少量C++類構成,同時提供了Python、Ruby、MATLAB等語言的介面,實現了圖像處理和計算機視覺方面的很多通用演算法。最新版本是3.1 ,2016年1月29日發布。(引自網路openCV)

簡言之,通過openCV可實現計算機圖像、視頻的編輯。廣泛應用於圖像識別、運動跟蹤、機器視覺等領域。
二、環境
本文適用於win7 64位系統 下的Python3.5。python3.5、pip為必備前提。python可在官網下載:https://www.python.org/downloads/windows/,建議使用exe installer,pip會隨之安裝。
環境變數中加入python安裝路徑,我的是 C:\Program Files\Python35\Scripts\;C:\Program Files\Python35\; 注意分號。
三、開搞
一切就緒以後以管理員身份運行cmd或PowerShell。依次輸入以下命令:
pip install --upgrade setuptools
pip install numpy Matplotlib
pip install opencv-python

opencv環境已經整好,就是這么簡單。只需要numpy、Matplotlib、opencv-python三個包,都不大很快就可以下好,如果下載中間出現error或wrong,重新輸入命令即可。
如果多次下載失敗,可以從http://www.lfd.uci.e/~gohlke/pythonlibs/直接下載whl包安裝,安裝whl包依然使用pip
pip install 包的位置(如:C:\download\xxx.whl)

四、測試
寫.py腳本:
#導入cv模塊import cv2 as cv#讀取圖像,支持 bmp、jpg、png、tiff 等常用格式img = cv.imread("D:\python\test.jpg")#創建窗口並顯示圖像cv.namedWindow("Image")
cv.imshow("Image",img)
cv.waitKey(0)#釋放窗口cv2.destroyAllWindows()
運行以上腳本,如果可以顯示出測試的圖像,則環境搭建成功

4. Python的各種imread函數在實現方式和讀取速度上有何區別

1. PIL.Image.open

代碼在這里:Pillow/Image.py at 3.1.x · python-pillow/Pillow · GitHub
open() 函數打開圖像,但並不讀入,直到有操作發生。
具體的讀取操作是在 ImageFile.py 寫的。大體流程是先檢測文件類型,整塊地讀入文件內容,然後調用解碼器解碼,做了很多優化,效率應該還是很高的。

2. scipy.ndimage.imread

代碼在這里:scipy/io.py at v0.17.1 · scipy/scipy · GitHub
imread 調用 scipy.misc.pilutil.imread。從名字就能看出來其實調用的還是 Pillow。
根據 pilutil 代碼:scipy/pilutil.py at v0.17.1 · scipy/scipy · GitHub
確實是調用 pil.image.open(),然後返回一個 fromimage()。

3. scipy.misc.imread

misc 的 __init__.py 在這里:scipy/__init__.py at v0.17.1 · scipy/scipy · GitHub
調用的還是 pilutil 中的 imread
相關代碼如下
try:
from .pilutil import *
from . import pilutil
__all__ += pilutil.__all__
del pilutil
except ImportError:
pass

也算是學了一招,從 pilutil 導入其所有函數添加到當前空間,然後又刪除了 pilutil 消除影響。

4. skimage.io.imread

代碼在這里:scikit-image/_io.py at master · scikit-image/scikit-image · GitHub
是通過插件 plugin 來讀入不同的文件,而且會試用幾個不同的 plugins 來找到合適的。
使用 call_plugin 來調用,代碼在這里:scikit-image/manage_plugins.py at master · scikit-image/scikit-image · GitHub
可以根據如下代碼查看插件調用的優先順序
# For each plugin type, default to the first available plugin as defined by
# the following preferences.
preferred_plugins = {
# Default plugins for all types (overridden by specific types below).
'all': ['pil', 'matplotlib', 'qt', 'freeimage'],
'imshow': ['matplotlib'],
'imshow_collection': ['matplotlib']
}

plugins 的源代碼在這里:scikit-image/skimage/io/_plugins at master · scikit-image/scikit-image · GitHub。可以看到 pil 的 imread,是用 open 打開圖像之後,再轉換成 ndarray。

5. cv2.imread

這里是調用的 CV::imread(),代碼在這里:opencv/loadsave.cpp at master · opencv/opencv · GitHub。一般來說 C\C++ 的實現,應該比 python 速度快一點。

6. matplotlib.image.imread

matplotlib 的文檔裡面說,matplotlib 原生只可以讀取 PNG 文件,有 PIL 的時候,可以讀取其他類型的文件。如果使用 URL 打開在線圖像文件,需要符合 PIL 的文檔要求。

matplotlib.image.imread 的代碼在這里:matplotlib/image.py at master · matplotlib/matplotlib · GitHub。matplotlib 的原生 PNG 讀取和寫入,是用 C 實現的,代碼在這里:matplotlib/_png.cpp at master · matplotlib/matplotlib · GitHub。

matplotlib 是先用 pil 的 open 打開圖像,如果格式是 png,就用原生方法打開。相關代碼如下:
handlers = {'png': _png.read_png, }
if format is None:
if cbook.is_string_like(fname):
parsed = urlparse(fname)
# If the string is a URL, assume png
if len(parsed.scheme) > 1:
ext = 'png'
else:
basename, ext = os.path.splitext(fname)
ext = ext.lower()[1:]
elif hasattr(fname, 'name'):
basename, ext = os.path.splitext(fname.name)
ext = ext.lower()[1:]
else:
ext = 'png'
else:
ext = format

if ext not in handlers:
im = pilread(fname)
if im is None:
raise ValueError('Only know how to handle extensions: %s; '
'with Pillow installed matplotlib can handle '
'more images' % list(six.iterkeys(handlers)))
return im

聲明的處理器只有 png。如果是 png 文件,調用 _png.read_png。如果不是 png 直接使用 pilread(就是用 pil 的 Image.open 然後 pil_to_array)。

matplotlib 的源碼確實比較復雜,一大部分主體是用 C 寫的,改動很激進,功能更新猛烈。

5. 求python中採用canny運算元提取圖像邊緣的源程序

需要下載pyopencv

#coding=utf-8

importpyopencvascv

#讀取圖像

image=cv.imread("d:/lena.jpg")

#因為Canny演算法只支持灰度圖像,所以要事先轉換

grayImage=cv.Mat(image.size(),cv.CV_8UC3)

cv.cvtColor(image,grayImage,cv.CV_RGB2GRAY)

#先生成空的邊緣圖像

edges=cv.Mat(grayImage.size(),grayImage.type())

#進行Canny轉換

cv.Canny(grayImage,edges,100,150)

#顯示圖像

cv.namedWindow("CannyImage")

cv.imshow("CannyImage",edges)

cv.waitKey()

6. 求助,在python中怎麼用Rect類

import numpy as np
import cv2 as cv
face_cascade = cv.CascadeClassifier('haarcascade_frontalface_default.xml')
eye_cascade = cv.CascadeClassifier('haarcascade_eye.xml')
img = cv.imread('sachin.jpg')
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x,y,w,h) in faces:
cv.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
roi_gray = gray[y:y+h, x:x+w]
roi_color = img[y:y+h, x:x+w]
eyes = eye_cascade.detectMultiScale(roi_gray)
for (ex,ey,ew,eh) in eyes:
cv.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)
cv.imshow('img',img)
cv.waitKey(0)

7. 基於python的opencv學習——MakeBorder()函數

MakeBorder(src, srcBorder, 8, 8, 8, 8, 0, Scalar(255, 255, 255));這是抄c++的,意思是上下襲左右各加一行8像素的白色的邊框,以此類推

8. Python的各種imread函數在實現方式和讀取速度上有何區別

1. PIL.Image.open

代碼在這里:Pillow/Image.py at 3.1.x · python-pillow/Pillow · GitHub
open() 函數打開圖像,但並不讀入,直到有操作發生。
具體的讀取操作是在 ImageFile.py 寫的。大體流程是先檢測文件類型,整塊地讀入文件內容,然後調用解碼器解碼,做了很多優化,效率應該還是很高的。

2. scipy.ndimage.imread

代碼在這里:scipy/io.py at v0.17.1 · scipy/scipy · GitHub
imread 調用 scipy.misc.pilutil.imread。從名字就能看出來其實調用的還是 Pillow。
根據 pilutil 代碼:scipy/pilutil.py at v0.17.1 · scipy/scipy · GitHub
確實是調用 pil.image.open(),然後返回一個 fromimage()。

3. scipy.misc.imread

misc 的 __init__.py 在這里:scipy/__init__.py at v0.17.1 · scipy/scipy · GitHub
調用的還是 pilutil 中的 imread
相關代碼如下
try:
from .pilutil import *
from . import pilutil
__all__ += pilutil.__all__
del pilutil
except ImportError:
pass

也算是學了一招,從 pilutil 導入其所有函數添加到當前空間,然後又刪除了 pilutil 消除影響。

4. skimage.io.imread

代碼在這里:scikit-image/_io.py at master · scikit-image/scikit-image · GitHub
是通過插件 plugin 來讀入不同的文件,而且會試用幾個不同的 plugins 來找到合適的。
使用 call_plugin 來調用,代碼在這里:scikit-image/manage_plugins.py at master · scikit-image/scikit-image · GitHub
可以根據如下代碼查看插件調用的優先順序
# For each plugin type, default to the first available plugin as defined by
# the following preferences.
preferred_plugins = {
# Default plugins for all types (overridden by specific types below).
'all': ['pil', 'matplotlib', 'qt', 'freeimage'],
'imshow': ['matplotlib'],
'imshow_collection': ['matplotlib']
}

plugins 的源代碼在這里:scikit-image/skimage/io/_plugins at master · scikit-image/scikit-image · GitHub。可以看到 pil 的 imread,是用 open 打開圖像之後,再轉換成 ndarray。

5. cv2.imread

這里是調用的 CV::imread(),代碼在這里:opencv/loadsave.cpp at master · opencv/opencv · GitHub。一般來說 C\C++ 的實現,應該比 python 速度快一點。

6. matplotlib.image.imread

matplotlib 的文檔裡面說,matplotlib 原生只可以讀取 PNG 文件,有 PIL 的時候,可以讀取其他類型的文件。如果使用 URL 打開在線圖像文件,需要符合 PIL 的文檔要求。

matplotlib.image.imread 的代碼在這里:matplotlib/image.py at master · matplotlib/matplotlib · GitHub。matplotlib 的原生 PNG 讀取和寫入,是用 C 實現的,代碼在這里:matplotlib/_png.cpp at master · matplotlib/matplotlib · GitHub。

matplotlib 是先用 pil 的 open 打開圖像,如果格式是 png,就用原生方法打開。相關代碼如下:
handlers = {'png': _png.read_png, }
if format is None:
if cbook.is_string_like(fname):
parsed = urlparse(fname)
# If the string is a URL, assume png
if len(parsed.scheme) > 1:
ext = 'png'
else:
basename, ext = os.path.splitext(fname)
ext = ext.lower()[1:]
elif hasattr(fname, 'name'):
basename, ext = os.path.splitext(fname.name)
ext = ext.lower()[1:]
else:
ext = 'png'
else:
ext = format

if ext not in handlers:
im = pilread(fname)
if im is None:
raise ValueError('Only know how to handle extensions: %s; '
'with Pillow installed matplotlib can handle '
'more images' % list(six.iterkeys(handlers)))
return im

聲明的處理器只有 png。如果是 png 文件,調用 _png.read_png。如果不是 png 直接使用 pilread(就是用 pil 的 Image.open 然後 pil_to_array)。

matplotlib 的源碼確實比較復雜,一大部分主體是用 C 寫的,改動很激進,功能更新猛烈。