zha*_*hen 7 c++ python opencv image-processing
我看到声明pyrDown:
CV_EXPORTS_W void pyrDown( InputArray src, OutputArray dst,
const Size& dstsize=Size(), int borderType=BORDER_DEFAULT );
Run Code Online (Sandbox Code Playgroud)
所以我假设第三个参数dstsize可能是这样的:Size(src.cols/4, src.rows/4.但正如文档所说:
在任何情况下,都应满足以下条件:
所以只有默认大小Size((src.cols+1)/2, (src.rows+1)/2)是合法的.那为什么dstsize需要参数呢?看起来好无用......
在这里我找到一个类似的问题帖子:
http://answers.opencv.org/question/25281/pyrup-only-for-doubling-size/
和@berak评论说:
金字塔只能以2的力量工作
虽然我认为金字塔只能在2的力量中工作,这是真的吗?
英文:当 src 的宽度/高度为奇数时2*x+1,例如 ,那么当使用pyrDownhalf will be 时(x+0.5),处理这种情况的默认方法是 ceil it,这是Size((src.cols+1)/2, (src.rows+1)/2),但我们也可以通过 set dstsize 将其向下取整。
中文:\n(\xe5\xbd\x93\xe5\x9b\xbe\xe7\x89\x87\xe8\xbe\xb9\xe9\x95\xbf\xe6\x98\xaf\xe5\xa5\x87\xe6 \x95\xb0\xe6\x97\xb6\xef\xbc\x8c\xe6\x8a\x98\xe5\x8d\x8a\xe5\x90\x8e\xe6\x9c\x89 0.5 \xe7\x9a\x84\xe5\ xb0\x8f\xe6\x95\xb0\xef\xbc\x8c\xe9\xbb\x98\xe8\xae\xa4\xe6\x98\xaf\xe5\x90\x91\xe4\xb8\x8a\xe5\x8f\ x96\xe6\x95\xb4\xef\xbc\x8c\xe5\x8f\xaf\xe4\xbb\xa5\xe8\xae\xbe\xe7\xbd\xaedstsize\xe6\x9d\xa5\xe5\x90\x91\ xe4\xb8\x8b\xe5\x8f\x96\xe6\x95\xb4\xef\xbc\x89\xe3\x80\x82
\n\n\n\n\n\n\n这是形状为 的图像
\n(183, 275, 3)。
\n\n\n然后我们用Python测试一下
\npyrDown,有四种可能的dstsize:
>>> img = cv2.imread(fname)\n>>> img.shape\n(183, 275, 3)\n>>> img1 = cv2.pyrDown(img)\n>>> img1.shape # the default size is `Size((src.cols+1)/2, (src.rows+1)/2)`\n(92, 138, 3)\n>>> img2 = cv2.pyrDown(img, dstsize=(137, 91))\n>>> img2.shape\n(91, 137, 3)\n>>> img3 = cv2.pyrDown(img, dstsize=(137, 92))\n>>> img3.shape\n(92, 137, 3)\n>>> img4 = cv2.pyrDown(img, dstsize=(138, 91))\n>>> img4.shape\n(91, 138, 3)\nRun Code Online (Sandbox Code Playgroud)\n\n笔记:
\n\nshape: (h,w,c)\nSize: (w,h)\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1397 次 |
| 最近记录: |