xiangwangfeng / m80imagemerger Goto Github PK
View Code? Open in Web Editor NEW截图自动拼接小工具
License: GNU General Public License v2.0
截图自动拼接小工具
License: GNU General Public License v2.0
试了很多图片,demo中的一次都没有成功过,不知是方法不对还是我的操作很奇葩
阿毛你好,感谢你分享的思路。因为你的 blog 不能留言,就放在这里了。
与你说的「截图拼接」一比,M80ImageMerger 确实在功能上要弱很多,比如带背景的图片就无法拼接。不过截图拼接的作者也是没谁,一个功能写了3个 app,我也是醉了……但有可能他是使用 OpenCV 之类的对不同聊天软件的气泡做了特别处理,所以才能对有背景的截图也能成功 stitch?
经过一番搜索,我找到了 pHash 这个 hash 库,号称是基于特征而非雪崩效应生成 hash,也许可以用 pHash 替换 CRC 能提升识别率。
iPhoneX拼接错误,重叠或者无法识别
感谢大佬提供的思路,但是我现在遇到了问题。
我这边需要把replykit截取的图片做拼接,但是我发现找不到拼接点,但是很奇怪的事,图片存到相册,再取出来,就可以正常匹配到了。请问这种情况下有解决的思路吗
ld: library not found for -lCTAssetsPickerController
clang: error: linker command failed with exit code 1 (use -v to see invocation)
编译时提示:
Class PLBuildVersion is implemented in both AssetsLibraryServices and PhotoLibraryServices. One of the two will be used. Which one is undefined.
按道理,AssetsLibrary和PhotoLibrary用一个就能解决问题了吧?
AssetsLibrary算不算是过时了,用Photos库是不是会好一些?
目前做法:
在使用最基础的 CRC 计算指纹的方式匹配失败后,会采用较为复杂的指纹计算方式
1.计算出单行内所有像素点对应的灰度值
2.将灰度值按照数量排序
3.去掉前 50 %
4.取后续最小值作为特征值
考虑做法
在计算指纹之前先对图片做个低通滤波,保留低频部分,然后再做指纹计算
理由是动图边缘部分一般和背景有较大出入,有较剧烈的色彩变动,反应为高频区域,可以考虑将这部分忽略
你好
我阅读了你的代码
算法棒棒哒
但是编译运行之后一直是提示拼接图片不同
于是设断点调试
发现两张图片在M80ImageMergeInfoGenerator类下面这个方法中
得到的x y length分别是
🎈-[M80ImageMergeInfoGenerator infoByImage:secondImage:] + 102📍 x = 2000
🎈-[M80ImageMergeInfoGenerator infoByImage:secondImage:] + 103📍 y = 2000
🎈-[M80ImageMergeInfoGenerator infoByImage:secondImage:] + 104📍 length = 273
也就是说在QQ上截图可识别的相同部分只是输入框以下的部分
我用MD5代替CRC32实验之后也是如此
说明和哈希算法无关
而且我的截图中没有GIF
我的image.size = NSSize: {1125, 2001}
哈哈 希望能得到你的回复
···
2016-01-01 11:04:13.246 M80ImageMerger[1540:614886] -[ALAsset mediaType]: unrecognized selector sent to instance 0x1355ded20
2016-01-01 11:04:13.248 M80ImageMerger[1540:614886] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ALAsset mediaType]: unrecognized selector sent to instance 0x1355ded20'
*** First throw call stack:
(0x1829a9900 0x182017f80 0x1829b061c 0x1829ad5b8 0x1828b168c 0x100037a44 0x100036de8 0x1879f3c90 0x187b1c530 0x1879f6e88 0x1877cb284 0x1877cb070 0x1877cab6c 0x1877ca6cc 0x1876d6e90 0x1876d6d18 0x1850adc00 0x1000e1bb0 0x1000e7658 0x182960bb0 0x18295ea18 0x18288d680 0x183d9c088 0x187704d90 0x100039b0c 0x18242e8b8)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
···
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.