Xin cho em hỏi VBA có khả năng so sánh 2 bức ảnh được không? (3 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Trunghieutin10

Thành viên mới
Tham gia
10/6/15
Bài viết
33
Được thích
10
Xin cho em hỏi VBA có khả năng so sánh 2 bức ảnh được không?

Thanks.
 
Bạn phải nói rõ hơn cụ thể là so sánh cái gì trong bức ảnh mới được chứ
 
Upvote 0
(Kích thước ảnh giống nhau, mình muốn so sánh phần 'Nội dung' ảnh đó :)
Kiểm tra thì được nhưng mà muốn so sánh tất cả từng điểm ảnh sẽ gặp vấn đề về tốc độ nếu mà chạy đơn luồng thông thường. Gặp hình có độ phân giải lớn (tính bằng megapixel) thì chắc treo máy một lát. :D
 
Lần chỉnh sửa cuối:
Upvote 0
Kiểm tra thì được nhưng mà muốn so sánh tất cả từng điểm ảnh sẽ gặp vấn đề về tốc độ nếu mà chạy đơn luồng thông thường. Gặp hình có độ phân giải lớn (tính bằng megapixel) thì chắc treo máy một lát. :D
Nếu bạn dùng hàm API GetPixel thì đúng là chậm vô cùng. Nhưng có cách nhanh hơn nhiều. Đó là nạp cả 2 tập tin vào bộ nhớ rồi so sánh các bai thích hợp với nhau. Muốn biết những bai cần so sánh, tức các bai mầu, nằm ở đâu thì phải hiểu được cấu trúc của tập tin BMP. Tập tin BMP ngoài các bai mầu còn chứa ở ngay đầu những cấu trúc mà trong đó các thông số của ảnh được lưu. Vd. kích thước tính bằng bai của tập tin, kích thước ảnh, dạng ảnh, khoảng cách (offset) tính từ bai đầu tiên tới vùng mầu (nhờ đó biết vùng mầu nằm ở đâu) v...v Hai bai đầu luôn là &H42, &H4D, tức "BM" Dù người ta có đổi tên tập tin từ "Ha long.bmp" thành "Ha long" hay "Ha long.dll" thì "BM" ở ngay đầu sẽ chỉ ra là 99,99% đây là tập tin ảnh BMP. Tập tin JPG sẽ có ở gần đầu "JFIF", tập tin GIF sẽ có ngay ở đầu "GIF". Muốn kiểm tra bằng tay thì mở bằng Hex Editor. Mỗi loại tập tin có signature của riêng mình.
Dễ đọc nhất là dạng 24bit vì khi đó cứ 3 bai liền nhau (3*8bit = 24bit) là mầu của 1 pixel (3 thành phần R, G, B). Vd. với ảnh đen-trắng thì 1 bit có thể nhớ mầu của 1 pixel (0 - đen, 1 - trắng). Tức 1 bai nhớ mầu của 8 pixel.
 
Upvote 0
Nếu bạn dùng hàm API GetPixel thì đúng là chậm vô cùng. Nhưng có cách nhanh hơn nhiều. Đó là nạp cả 2 tập tin vào bộ nhớ rồi so sánh các bai thích hợp với nhau. Muốn biết những bai cần so sánh, tức các bai mầu, nằm ở đâu thì phải hiểu được cấu trúc của tập tin BMP. Tập tin BMP ngoài các bai mầu còn chứa ở ngay đầu những cấu trúc mà trong đó các thông số của ảnh được lưu. Vd. kích thước tính bằng bai của tập tin, kích thước ảnh, dạng ảnh, khoảng cách (offset) tính từ bai đầu tiên tới vùng mầu (nhờ đó biết vùng mầu nằm ở đâu) v...v Hai bai đầu luôn là &H42, &H4D, tức "BM" Dù người ta có đổi tên tập tin từ "Ha long.bmp" thành "Ha long" hay "Ha long.dll" thì "BM" ở ngay đầu sẽ chỉ ra là 99,99% đây là tập tin ảnh BMP. Tập tin JPG sẽ có ở gần đầu "JFIF", tập tin GIF sẽ có ngay ở đầu "GIF". Muốn kiểm tra bằng tay thì mở bằng Hex Editor. Mỗi loại tập tin có signature của riêng mình.
Dễ đọc nhất là dạng 24bit vì khi đó cứ 3 bai liền nhau (3*8bit = 24bit) là mầu của 1 pixel (3 thành phần R, G, B). Vd. với ảnh đen-trắng thì 1 bit có thể nhớ mầu của 1 pixel (0 - đen, 1 - trắng). Tức 1 bai nhớ mầu của 8 pixel.
batman1 có chak là cách này không làm đơ máy để so sánh 2 tấm hình có cùng kích cỡ megapixel không?
 
Lần chỉnh sửa cuối:
Upvote 0
batman1 có chak là cách này không làm đơ máy để so sánh 2 tấm hình có cùng kích cỡ megapixel không?
Tôi chỉ nói là tùy vào phương pháp mà nhanh hay chậm. Và dễ nhất khi có bmp 24bit. Còn về thử thì chưa bao giờ có nhu cầu nên tôi chưa bao giờ thử.
Megapixel? Tức ảnh vd. 1000 dòng, 1000 cột? 1 triệu phép so sánh? Tôi không phải người chuyên về đồ họa và dùng những thư việt đồ họa cực nhanh nên chắc không thể thao tác và soạn các mảng bai nhanh tới mức có thể dùng để làm phim chạy mượt được. Nhưng nói là so sánh 2 ảnh 1000 x 1000 pixels mà treo máy thì có lẽ không có đâu. Ảnh cỡ đó là bình thường mà.
 
Upvote 0
Tôi chỉ nói là tùy vào phương pháp mà nhanh hay chậm. Và dễ nhất khi có bmp 24bit. Còn về thử thì chưa bao giờ có nhu cầu nên tôi chưa bao giờ thử.
Megapixel? Tức ảnh vd. 1000 dòng, 1000 cột? 1 triệu phép so sánh? Tôi không phải người chuyên về đồ họa và dùng những thư việt đồ họa cực nhanh nên chắc không thể thao tác và soạn các mảng bai nhanh tới mức có thể dùng để làm phim chạy mượt được. Nhưng nói là so sánh 2 ảnh 1000 x 1000 pixels mà treo máy thì có lẽ không có đâu. Ảnh cỡ đó là bình thường mà.
Nhắc đến mấy thư viện đồ họa thì xin thua. Thú thật tôi không đủ trình độ để dám nhắc tới nó luôn :D. Nhưng mà dùng VBA mà làm việc phép so sánh ở trên mà không đơ máy (không hiện cái xoay tròn tròn á) thì tôi vẫn hy vọng được ai đó trình diễn.
 
Lần chỉnh sửa cuối:
Upvote 0
Nhắc đến mấy thư viện đồ họa thì xin thua. Thú thật tôi không đủ trình độ để dám nhắc tới nó luôn :D. Nhưng mà dùng VBA mà làm việc phép so sánh ở trên mà không đơ máy (không hiện cái xoay tròn tròn á) thì tôi vẫn hy vọng được ai đó trình diễn.
Thì tôi nói là tôi không sử dụng những thư viện đồ họa mà. Tôi có những thư viện đó đâu mà bạn nói thua với không thua?
Với tôi đơ máy, treo máy là khi chỉ còn cách giết bằng Ctrl+Alt+Del.
Còn chuyện xoay xoay là máy bận. Có những việc phải làm vài giây, vài phút, nhiều phút. Chuyện phải cần nhiều phút thì phải chấp nhận thôi. Không phải việc nào cũng có thể làm trong vài giây, nửa giây. Còn so sánh 1 triệu lần thì mất khoảng bao nhiêu thì tôi cũng chưa biết. Tôi cũng không biết bao nhiêu thì bạn cho là bình thường, và bao nhiêu thì bạn cho là treo máy.
Bạn viết:
Kiểm tra thì được nhưng mà muốn so sánh tất cả từng điểm ảnh sẽ gặp vấn đề về tốc độ nếu mà chạy đơn luồng thông thường. Gặp hình có độ phân giải lớn (tính bằng megapixel) thì chắc treo máy một lát.
Tôi cũng hy vọng được ai đó trình diễn. Vì kết luận được như thế ắt hẳn phải biết làm, biết nó lâu như thế nào.
Tôi chấm dứt tranh luận ở đây.
 
Upvote 0
Thì tôi nói là tôi không sử dụng những thư viện đồ họa mà. Tôi có những thư viện đó đâu mà bạn nói thua với không thua?
Với tôi đơ máy, treo máy là khi chỉ còn cách giết bằng Ctrl+Alt+Del.
Còn chuyện xoay xoay là máy bận. Có những việc phải làm vài giây, vài phút, nhiều phút. Chuyện phải cần nhiều phút thì phải chấp nhận thôi. Không phải việc nào cũng có thể làm trong vài giây, nửa giây. Còn so sánh 1 triệu lần thì mất khoảng bao nhiêu thì tôi cũng chưa biết. Tôi cũng không biết bao nhiêu thì bạn cho là bình thường, và bao nhiêu thì bạn cho là treo máy.
Bạn viết:

Tôi cũng hy vọng được ai đó trình diễn. Vì kết luận được như thế ắt hẳn phải biết làm, biết nó lâu như thế nào.
Tôi chấm dứt tranh luận ở đây.
Tôi có nói rõ là "treo máy một lát" lúc 10:28PM mà chứ có nói treo luôn đâu mà đã lo Ctrl+Alt+Del?

Nhắc đến mấy thư viện đồ họa đó thì chắc batman1 hiểu ít nhiều cách hoạt động của mấy thư viện đồ họa đúng không? Tốc độ của xử lý của các hàm đồ họa hiện tại có thể giúp xuất ra 60 hình/giây với độ phân giải megapixel. Liệu VBA có thể đạt tốc độ tính toán cỡ 1/60 (hoặc nhanh hơn) các hàm trong thư viện đó không?

Không biết thì dựa cột mà nghe nên tôi mong được batman1 sẻ tý thông tin về cách hoạt động của các thư viện đó để mở mang tý chút :D
 
Lần chỉnh sửa cuối:
Upvote 0
Cám ơn tất cả các bác. Em cũng muốn thử nhưng kiến thức mênh mông, cũng tìm hiểu nguồn anh Google nhưng mông lung quá. Mạo muội viết lên đây nhờ các anh chị nào đã từng làm cái này chỉ bảo em chút chút. :)
 
Upvote 0
so sánh 2 bức ảnh là có khả năng , nhưng phải có thông tin cụ thể là cần so sánh gì , thì tùy theo mức độ sẽ có cách giải quyết tương ứng ,

ví dụ nếu 2 bức ảnh là giống nhau , thì chỉ cần so sánh kích thước 2 tập tin thôi là ok !
nếu 2 bức ảnh bị cắt gọt tí xíu , hoặc các thông tin so sánh đơn giản , thì so sánh từ từ hàng và cột sẽ dò ra cho khớp !

với 2 bức ảnh là khác nhau hoàn toàn , chụp 2 thời điểm khác nhau , thì phải có cách giải quyết cao cấp hơn !
và các thông tin phức tạp , kiểu như !
ví dụ bạn chụp 1 con mèo , và 1 con mèo khác , so sánh 2 bức ảnh con mèo đó có phải là mèo ko , thì phải cho máy học các bức ảnh về loài mèo , máy sẽ tô vùng các bức ảnh và chỉ ra đâu là con mèo !
hoặc 2 bức ảnh con mèo , và trả về kết quả có phải là cùng 1 con mèo ko , ví dụ thế !
 
Upvote 0
so sánh 2 bức ảnh là có khả năng , nhưng phải có thông tin cụ thể là cần so sánh gì , thì tùy theo mức độ sẽ có cách giải quyết tương ứng ,

ví dụ nếu 2 bức ảnh là giống nhau , thì chỉ cần so sánh kích thước 2 tập tin thôi là ok !
nếu 2 bức ảnh bị cắt gọt tí xíu , hoặc các thông tin so sánh đơn giản , thì so sánh từ từ hàng và cột sẽ dò ra cho khớp !

với 2 bức ảnh là khác nhau hoàn toàn , chụp 2 thời điểm khác nhau , thì phải có cách giải quyết cao cấp hơn !
và các thông tin phức tạp , kiểu như !
ví dụ bạn chụp 1 con mèo , và 1 con mèo khác , so sánh 2 bức ảnh con mèo đó có phải là mèo ko , thì phải cho máy học các bức ảnh về loài mèo , máy sẽ tô vùng các bức ảnh và chỉ ra đâu là con mèo !
hoặc 2 bức ảnh con mèo , và trả về kết quả có phải là cùng 1 con mèo ko , ví dụ thế !
Em up file anh xem qua xem qua. Nếu được anh có thể giúp em theo nội dung em đã chú thích. Cám ơn anh trước :)
 

File đính kèm

Upvote 0
Có anh chị nào có nguồn tài liệu lien quan, nếu được cho em xin với nhé!
 
Upvote 0
Bỏ ảnh "Ngọc Trinh" với "Mai Phương Thúy" lên đây may ra còn có nhiều anh em thấy sự khác biệt á. Chứ vụ này chịu!
Bỏ ảnh "Ngọc Trinh" với "Mai Phương Thúy" lên đây may ra còn có nhiều anh em thấy sự khác biệt á. Chứ vụ này chịu!
Cái này em không dám nhờ các bác, em tự xử được :)
 
Upvote 0
Bài #19 + #19:
Trâu già còn ham gặm cỏ non.

Bài #20:
Cậu xử được cái này thì đi làm trọi gai đi chứ vướng víu làm chi với vê bê a cho nó uổng tài.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom