Когда вы применяете cv2.cvtColor (img, cv2.COLOR_BGR2GRAY), вы меняете свое изображение на оттенки серого, получая только один цветной канал. Форма ваших изображений теперь (?, 244 244), и вы пытаетесь указать заполнитель формы (?, 244 244,3). Если вы хотите использовать изображения в оттенках серого, вы должны изменить свой набор изображений на (?, 244,244,1) и использовать заполнитель той же формы.
Ваш запрос только возвращает записи, если и A и связанный B содержат искомый текст.
Вы не заявляете, что не работает, все же.
Почему не ОСТАВЛЕННЫЙ ВНЕШНЕЕ ОБЪЕДИНЕНИЕ полнотекстовые поиски и замена:
SELECT *, (ISNULL(ftTableA.[RANK], 0) + ISNULL(ftTableB.[RANK], 0)) AS total_rank
и
WHERE ftTableA.Key IS NOT NULL OR ftTableB.Key IS NOT NULL
Я не положителен, что понял то, что Вы пытались сделать. Я интерпретировал Ваш вопрос, поскольку Вы хотите возвратить все объекты в Таблице A, которая соответствовала критерию поиска. Кроме того, Вы хотели суммировать разряд от объекта в TableA плюс объекты соответствия в TableB.
Лучшим способом я могу думать, чтобы сделать, это должно использовать табличную переменную с 3 запросами.
DECLARE @Results Table (a1 Int UNIQUE, Rank Int) --Insert into @Results all matching items from TableA INSERT INTO @Results (a1, Rank) ( SELECT TableA.a1, FT.Rank FROM TableA INNER JOIN FreeTextTable(TableA, *, 'search term') FT ON TableA.A1 = FT.[Key] ) --Update all of the ranks in @Results with a sum of current value plus the sum of --all sub items (in TableB) UPDATE @Results SET Rank = RS.Rank + FT.Rank FROM @Results RS INNER JOIN TableB ON RS.A1 = TableB.b2 INNER JOIN FreeTextTable(TableB, *, 'search term') FT ON TableB.b1 = FT.[Key] --Now insert into @Results any items that has a match in TableB but not in TableA --This query may/may not be desired based on your business rules. INSERT INTO @Results (SkillKeyId, Rank) ( SELECT TableB.b2, Sum(FT.Rank) FROM TableB INNER JOIN FreeTextTable(TableB, *, 'search term') FT ON TableB.b1 = FT.[key] LEFT JOIN @Results RS ON RS.a1 = TableB.b2 WHERE RS.a1 IS NULL GROUP BY TableB.b2 ) --All that's left is to return the results SELECT TableA.*, RS.Rank AS Total_Rank FROM TableA INNER JOIN @Results RS ON TableA.a1 = RS.a1 ORDER BY RS.Rank DESC
Это не столь изящно как использование одного запроса, но за этим должно быть легко следовать и позволяет Вам решать, включать ли записи в 3-й запрос.